>Nanite is a very clever data structure for meshes. It's brittle, and full of internal relative addresses within the data item, so it's very vulnerable to buffer overflows.
Using bounds checking is likely to kill performance on such data structures, while using `get_unchecked` or raw pointers will keep the issues.
But even then, I would love to see Nanite implemented in Rust.
Kinda late to the party, but just a heads up: in rust, bounds checks are only available on debug builds. I'm not familiar with the internals of Nanite though, so I can't comment on how safe (or unsafe) it should be to implement.
I’m not sure what you mean here, bounds checks have nothing to do with debug builds, other than that optimizations may remove more of them if they’re determined to never fire, and release builds tend to have higher optimization levels. Semantically they’re always on unless you use the get_unchecked method.
Using bounds checking is likely to kill performance on such data structures, while using `get_unchecked` or raw pointers will keep the issues.
But even then, I would love to see Nanite implemented in Rust.