use crate::unit::{Conversion, ConversionFraction, Derived, DerivedVtable, Unit};
pub static JOULE: Derived = Derived {
id: crate::generated::ids::JOULE,
vtable: &DerivedVtable {
powers: |powers, p| {
powers.insert(Unit::KiloGram, p);
powers.insert(Unit::Meter, p * 2);
powers.insert(Unit::Second, p * -2);
},
format: |f, _| write!(f, "J"),
conversion: None,
},
};
pub static BTU: Derived = Derived {
id: crate::generated::ids::BTU,
vtable: &DerivedVtable {
powers: JOULE.vtable.powers,
format: |f, pluralize| {
if pluralize {
write!(f, "btus")
} else {
write!(f, "btu")
}
},
conversion: Some(Conversion::Factor(ConversionFraction {
numer: 1055,
denom: 1,
})),
},
};
pub static ELECTRONVOLT: Derived = Derived {
id: crate::generated::ids::ELECTRONVOLT,
vtable: &DerivedVtable {
powers: JOULE.vtable.powers,
format: |f, _| write!(f, "eV"),
conversion: Some(Conversion::Factor(ConversionFraction {
numer: 801088317,
denom: 5000000000000000000000000000,
})),
},
};