livingcoder

joined 2 years ago
[–] livingcoder 4 points 1 month ago (3 children)

There are a few different ways to solve this problem without using unsafe and I'm not sure what would be considered idiomatic. Another option is to ultimately encapsulate all of the nodes in a reference-counted box like Rc or Arc and specify the type of your parent/child/sibling references to the same reference-counted box type. With that, you just share cloned instances around as needed.

The primary drawback here is that for mutable access you end up having to perform a lock every time on an underlying Mutex (or something similar). You also no longer have direct access to the singular instance of the node.

There are pros and cons to every approach.

[–] livingcoder 4 points 1 month ago* (last edited 1 month ago) (5 children)

One way of solving this is to structure all of your nodes into a HashMap with the node ID as the key and the node type as the value. The underlying node type could have node IDs for referencing purposes. You lose the ability to reference the parent/child/sibling directly, but you avoid direct circular dependencies. That said, now you need to manage dangling references for when the node is removed from the main HashMap collection.

[–] livingcoder 23 points 1 month ago

For me it all depends on how often a project changes. If it's constantly in flux, I don't bother remembering any of it because I might not be the last one who touched it. The more you try to remember everything, the more wrong you become due to the successive work of your coworkers.

[–] livingcoder 6 points 1 month ago (1 children)

What game is this?

[–] livingcoder 2 points 1 month ago (2 children)

"Maintainable code and common patterns? But I prefer code-golfing my if-statements into one, long sequence of characters." -coworker standing atop the Dunning-Kruger peak

[–] livingcoder 5 points 1 month ago

Given that "existing outside" is harmful to it, I'm guessing that the covering is basically required.

[–] livingcoder 3 points 1 month ago* (last edited 1 month ago)

There are so many ways to be a hero for those around you. Why end your life when you could dedicate your life to help those in need? When you feel at your lowest, remember that there is someone, right now, who wants to know and believe in you and who hopes that you could do your very best to help them and others.

This is intended to be motivating. Instead of leaving a hole in the world, you could become a role model for others.

[–] livingcoder 1 points 1 month ago

There's a patent on the game mechanic?

googled it

Yup, that is crazy. At least it's only for another 11 years. Just think about how old you will be before you'll ever see that game mechanic again.

[–] livingcoder 2 points 1 month ago (1 children)

Which games are those?

[–] livingcoder 5 points 1 month ago (3 children)

That sounds really cool.

view more: ‹ prev next ›