Why are you traveling to make a call? You could just call.
Why are you traveling to make a call? You could just call.
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?
Very cool. I’ll have to try it out. I just started using React, and I’m beginning to love it. React with rust sounds like heaven.
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.
Woah. First I’ve heard of dioxus. Has anyone here tried it?
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.
Right? What’s with that? It’s like everyone gets their crate to the minimal working state and stops workings on it.
Oh I see. I misunderstood the reason for wanting it represented as an int.
I’m wondering if you could just create a wrapper type that only has an int as a member, but then implement a trait on it so that it can act like a result. That, or just pass around your int type in the rust code, and when you need it to act like a result you do a conversion from int to result. Your debugger wouldn’t show it as an int at that point, but it wouldn’t show any other Result as an int anyway so it would br consistent with other rust code. If this still doesn’t work, you could even make a struct that contains both the int and the result and keeps then synchronized. Then, when debugging, you could look into that struct and see the int value like you want.
I started trying out JUCE. It’s a framework for making audio plugins (VSTs). Though I think I’m going to give the rust solution another shot with Vizia.
How are you running the executable? From command line?
Good luck with it. What’s it called?
Well if you want to keep an int as an int, then use an int. If you want to use Results, use results. Like I said to the other commenter: unless this code is in a very tight loop where performance is crucial, you’ll be fine just implementing From/Into to change your Result to and from an int. You’re already crossing a language boundary by calling c code from Rust. Is it that much more of an issue to just convert the types when you need to?
Trying to store the results as an int in some magical way just screams premature optimization. You have abstraction tools at your disposal. They may not be zero cost, but they are cheap. Use them.
Gotcha. I unfortunately decided to give up on trying to do this in Rust. I’m trying out JUCE since it’s industry standard. I’m already bashing my head against the wall with this C++ garbage. Hopefully the gui scene looks better for rust soon
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.
I decided to give up. Iced just isn’t a mature enough gui framework and the alternatives don’t look great either.
I restarted my plug in project using JUCE tonight and I already have the gui started. It’s c++, so that sucks, but oh well
Agreed. I also believe we should all stop showing up for work until we are guaranteed health care, a living wage, and reasonable housing prices. We shouldn’t contribute to system that works against us.
I deleted my 14 year old reddit account when they pulled their shit. Then I recently created a new account because I need to be able to get answers to specific programming questions sometimes, and lemmy doesn’t have the population of users that reddit still has. I generally post on both lemmy and reddit, but I almost always get more answers on reddit.