Dimensioned, the Rust library that I have written for compile-time dimensional analysis, has just reached version 0.6.0! This version change indicates a full rewrite of the library, and I think that it has made it much more usable.
I first started this crate before Rust had hit 1.0, and I fairly quickly realized that what I wanted was not possible. With the advent of associated types, it became possible, and two years ago I first announced its existence. It was really a proof of concept at that point; it was lacking in ergonomics and some pretty important features.
Today, I am excited to report that I believe it is more than a proof of concept, and is ready to be used.
Here are some notable changes:
Dimstruct. That struct is gone, which brings a couple benefits. The first is ergonomics; a meter was expressed as
Dim<Meter, V>in past verions, and now it is
Meter<V>. The second benefit is in Rust’s orphan rules; if you create a unit system, you now create the outermost struct, and so have full control over what you can implement for it.
std! Use dimensioned wherever you desire!