I don't have a process right now because my finances got more complicated recently. I figured I'd ask so that I can make a process!
I would agree, but when I've sat down to make a spreadsheet it just seems like inputting and categorizing my different transactions manually is a chore. I just want to have something categorize and bin it into necessities, saving, and then see how much off the top I can spend per day. Usually if I have a dollar goal per day or week it makes it really easy for me to budget. Now that my finances are more complicated, its harder to get to that point with just a spreadsheet.
Thanks for the big list! I'll definitely look through those options.
What is this tool called?
What's your goal with switching languages? You need to figure out what business requirements are fulfilled more effectively given that technical change before making that change. I mostly say this because I don't hear a clear reason for the switch in your post.
For the rust ecosystem in general, reading through the cargo help output to see what tooling is there is a great start. You can see what functionality is already baked into the native language tooling, which should guide you on the right path. Off the top of my head, theres ways to test and lint your code already built in. Best practices are usually crate dependent, especially when working with something (I think) is macro heavy like dioxus(I don't do a lot of UI in rust). Make sure to go through the provided dioxus code examples because those will probably cover most use cases you'll be going for.
I always make sure to have my AAA g string on when I'm biking. If I land head first in a ditch, I know my ass is insured at least.
If you were a secretary, you could probably have some spare time during work hours to do what you like too!
Yeah what I wrote was just something to get the idea out, about having a list of Allowables.
I just fully read your code, and I like how you changed the Allowable api to have a deny and allow function instead of it being at the AllowList level. Honestly, I did not know mem::take was a function. I like how you got around cloning too.
Also, just so you know, you come off pretty rude. Just want to make sure you know that if you're not aware.
Also sorry, I realized I worded my response a little rude earlier. Didn't mean it like that, I was just speaking matter of factly!
How is it a code smell? I'm pretty sure interior mutability is a well established design pattern. I'm not really familiar with the pattern you're describing using Ref/RefMut wrapping, could you show me what you mean?
Yeah I didn't want to pour a bunch of time into wrangling borrow checker stuff for a small code snippet.
Finally got around to writing the code, here's the link to the Rust playground with it. I was too lazy to do the unsafe stuff, but where I call clone in the deny and accept functions are where you'd rewrite and do unsafe magic to swap out elements without the clone overhead.
I also tried to implement a take function (like in Option) for the Allowable enum. Transferring ownership like with take would keep you in safe land and get what you want done.
Keep in mind I am not a game dev. I don't do cache optimizations. I have no idea how this code would function in a game context, but this is just my first idea for implementation of what you asked.
I don't think you need a mutex for this situation.