Поиск статьи: Система типов Rust на примере валют

Ищу статью на английском(можно на русском) где на примере валют демонстрировалась работа системы типов Rust, в точности конвертация валют при помощи типажей From и Into.

Понадобилось освежить в памяти, а гугл не помогает.

я, кажется, на хабре видел статью или перевод про конвертацию градусов цельсия в градусы фаренгейта с помощью этих типажей

Есть крейт https://crates.io/crates/uom, который описывает СИ и на котором можно делать штуки вроде:

let length = Length::new::<kilometer>(5.0);
let time = Time::new::<second>(15.0);
let _velocity/*: Velocity*/ = length / time;
//let error = length + time; // error[E0308]: mismatched types

Т.к. кроме километров есть еще и метры, футы, световые года и другие единицы измерения, то в этом крейте полно определений этих структур и конвертаций: https://docs.rs/uom/0.21.0/uom/si/length/index.html

Подходит?

2 лайка