Wrapping values with types in Rust
2025-07-10 23:21:02.148326+02 by Dan Lyke 0 comments
Okay, now I'm beginning to see some of the idioms that make Rust really cool: An (almost) catastrophic OpenZFS bug and the humans that made it (and Rust is here too).
In particular, the function that had the bug had 3 different sizes, a "logical" (user visible) size, a "physical" size (the size for the logical data after compression or other transforms) and the "allocated" size (physical plus metadata, checksums, etc), and got them confused.
The solution in Rust is to declare your types like struct PhysicalSize(u64);
and use the .0
from them when you need the actual number, and... this is a really cool language feature and I need to write more Rust.