Maybe lazy_static? Personally I’d just pass a borrow to the vec around. It’s very common for programs to have some global state that they pass around to different parts.
Maybe lazy_static? Personally I’d just pass a borrow to the vec around. It’s very common for programs to have some global state that they pass around to different parts.
Lol not a great name choice. Wish I would have thought of it though.
I get why the binary is there, but there really should be a simple way to force compilation instead of downloading a precompiled binary.
Serde is incredible though, so it can get away with basically anything it wants.
Ideally, all of these values should be represented in memory exactly the same way:
That would make the game hard to play, since you’d have to think about where your move would end up since it won’t stay on the cell you click.
I think you’re wanting to store them that way so that you can easily check for win conditions, maybe? But that’s the wrong approach. Store the cells as they appear to the player, in a 2d Array (or 1d Array with indexing math. That’s how I’d do it).
Then you can take advantage of symmetries in your win condition code, if you like. But it really couldn’t be much simpler than counting the matching cells in each row, column, and diagonal. That’s just 8 groups of 3.
How are you running the executable? From command line?
For real. Unless he’s converting between results and ints millions of times a second, I think he’s going to be just fine using the idiomatic solution. That transmute shit I’d wack lol
So what! Who cares if it’s free? Write first, profile and optimize later. Not everyone cares about whether the conversion is free. Simply matching and converting to the right integer is fast enough.
You’ve pretty much got it figured out. Create your result type and write an Impl for covering to/from integers. You can use From/Into to keep it idiomatic.
““The bubble of hot air that has inflated over southern Europe has turned Italy and surrounding countries into a giant pizza oven,” she said in a statement Monday”
That’s kind of a hilarious way to say that it’s hot. Italy is one big pizza oven.
I’d say something like LUA or python so people could easily write their own plug-ins. If speed really is a concern then I’d go with wasm.
Yeah, you can’t pass one type when the function expects another type. You have either use generics and trait bounds or provide the exact type that a function expects…
What errors are you getting when converting from BaseArmy to Army? If you’re storing references to other structs in your struct, things can get complicated. Using Clone/Copy types will make things easier.
I’d also recommend the builder pattern for this. It let’s you build up a type incrementally, with a final build step that produces the final type.
Ah I didn’t realize most people have moved onto OnceCell. The issue with both lazy static and oncecell is that they can only be assigned to once. You need a global mutable state, so neither OnceCell or lazy_static are the right choice.
You’re going to be fighting the borrow checker if you try to have global mutable state. It will bite you eventually. You can potentially use an interior mutablity pattern along with a mutex. Have you looked into interior mutability?