1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use crate::convert::FromUnit; use crate::{Measure, Unit}; pub trait Quantity { type BaseUnit: Unit; } pub fn from_unit<N, U, Q>( unit: Measure<N, U>, ) -> Measure<<<Q as Quantity>::BaseUnit as FromUnit<N, U>>::Output, Q> where N: , U: Unit, Q: Quantity, <Q as Quantity>::BaseUnit: FromUnit<N, U>, { Measure::new(<<Q as Quantity>::BaseUnit as FromUnit<N, U>>::from_unit( unit.num, )) }