mod measure;
mod unit_format;
mod unit_simple;
use crate::unit_creation::{Flt, MeasureSystem as MS};
pub use measure::Measure;
pub use unit_format::UnitFormat;
pub use unit_simple::UnitSimple;
pub trait MeasureSystem {}
pub trait MultiplyBy<OTH: MeasureSystem> {
type Output: MeasureSystem;
}
pub trait DivideBy<OTH: MeasureSystem> {
type Output: MeasureSystem;
}
pub trait UnitTrait<S: MS> {
fn from(&self, val: Flt) -> Measure<S>;
fn to_base(&self, val: Flt) -> Flt;
fn to_self(&self, val: Flt) -> Flt;
}
#[cfg(not(feature = "no_std"))]
#[cfg(feature = "str")]
pub trait UnitFormatTrait<S: MS> {
fn as_string_abbr(&self, val: Measure<S>) -> String;
fn as_string_full(&self, val: Measure<S>) -> String;
}