Newtype — wrap existing type for type safety.
Implementation:
1struct Meters(f64);2struct Seconds(f64);34impl Meters {5 fn new(value: f64) -> Self {6 Self(value)7 }8}910fn speed(distance: Meters, time: Seconds) -> f64 {11 distance.0 / time.012}1314let d = Meters(100.0);15let t = Seconds(9.58);16println!("{}", speed(d, t));
Benefits:
Key: Newtype for domain-specific types.