Flutterby™! : Wrapping values with types in Rust

Next unread comment / Catchup all unread comments User Account Info | Logout | XML/Pilot/etc versions | Long version (with comments) | Weblog archives | Site Map | | Browse Topics

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.

[ related topics: Weblogs Mathematics ]

comments in ascending chronological order (reverse):