You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -99,6 +100,13 @@ Games need random numbers, and Rust has *many* RNG crates. Here are some I like.
99
100
| [fastrand](https://crates.io/crates/fastrand) | simple, fast random number generator that uses a 64-bit state |
100
101
| [rand_xoshiro](https://crates.io/crates/rand_xoshiro) | very nice random number generators, i specifically like `SplitMix64` for being very simple, fast, and with a simple 64-bit state, but it has more sophisticated generators available as well |
101
102
103
+
## Collections & Smart Pointers
104
+
105
+
| Crate | Description |
106
+
| ----- | ----------- |
107
+
| [pared](https://crates.io/crates/pared) | projected shared pointers (eg. get a "shared" reference to a field of a struct in an `Rc`) |
108
+
| [slotmap](https://crates.io/crates/slotmap) | provides 3 containers with persistent unique keys to access stored values (basically a hash-map that generates keys for you and has O(1) lookup time)
109
+
102
110
## Miscellaneous
103
111
104
112
Haven't figured out how to categorize this stuff yet, but some of these are extremely useful.
@@ -107,7 +115,6 @@ Haven't figured out how to categorize this stuff yet, but some of these are extr
107
115
| ----- | ----------- |
108
116
| [ahash](https://crates.io/crates/ahash) | very fast, non-cryptographically secure hashing algorithm |
109
117
| [gilrs](https://crates.io/crates/gilrs) | gamepad input library, really great API, controller layout/bindings/event handling, and haptic support |
110
-
| [pared](https://crates.io/crates/pared) | projected shared pointers (eg. get a "shared" reference to a field of a struct in an `Rc`) |
111
118
| [strum](https://crates.io/crates/strum) | add lots of reflection to enums (names, count, enumerate over their values, etc.), great to remove boilerplate and prepare enums for in-editor dropdown support |
112
119
| [thiserror](https://crates.io/crates/thiserror) | my favorite library for creating error structs/enums with nice display implementations (reduces lots of boilerplate and can generate from-impls as well, etc.) |
113
120
| [ulid](https://crates.io/crates/ulid) | i like this for guid generation, which uses the [ulid](https://github.com/ulid/spec) specification to generate 128-bit unique IDs that have nice string representations |
0 commit comments