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):

Comment policy

We will not edit your comments. However, we may delete your comments, or cause them to be hidden behind another link, if we feel they detract from the conversation. Commercial plugs are fine, if they are relevant to the conversation, and if you don't try to pretend to be a consumer. Annoying endorsements will be deleted if you're lucky, if you're not a whole bunch of people smarter and more articulate than you will ridicule you, and we will leave such ridicule in place.


Flutterby™ is a trademark claimed by

Dan Lyke
for the web publications at www.flutterby.com and www.flutterby.net.