pub trait UnitInfo {
// Required methods
fn walk_values<F: FnMut(Self) -> MyResult<()>>(
multiply: bool,
divide: bool,
function: F,
) -> MyResult<()>
where Self: Sized;
fn get_name(&self) -> Option<String>;
fn get_symbol(&self) -> Option<String>;
// Provided methods
fn get_factor(&self) -> BigRational { ... }
fn get_offset(&self) -> BigRational { ... }
}