pub struct Unit { /* private fields */ }Implementations§
Source§impl Unit
impl Unit
Sourcepub fn from_vec(list: Vec<(BaseUnit, i32)>) -> Unit
pub fn from_vec(list: Vec<(BaseUnit, i32)>) -> Unit
Create a Unit from a vector of BaseUnit and their power
§Examples
use ndarray_unit::Unit;
use ndarray_unit::BaseUnit;
let candela_square_divided_by_ampere_cube = Unit::from_vec(vec![(BaseUnit::CANDELA, 2), (BaseUnit::AMPERE, -3)]);
println!("{}", candela_square_divided_by_ampere_cube)Output
// cd²·A⁻³pub fn get_base_units(&self) -> &HashMap<BaseUnit, i32>
Sourcepub fn get_inverse(&self) -> Unit
pub fn get_inverse(&self) -> Unit
Given an Unit, return the inverse of this unit.
It inverse the sign of the power of every BaseUnit of the given input Struct
§Exemples
use ndarray_unit::Unit;
use ndarray_unit::BaseUnit;
let unit = Unit::from_vec(vec![(BaseUnit::KELVIN, 2), (BaseUnit::MOLE, -3)]);
let inverse = Unit::from_vec(vec![(BaseUnit::KELVIN, -2), (BaseUnit::MOLE, 3)]);
assert_eq!(inverse, unit.get_inverse());Sourcepub fn add_single_unit(&mut self, unit: BaseUnit, n: i32)
pub fn add_single_unit(&mut self, unit: BaseUnit, n: i32)
Add a BaseUnit (and its power) to an existing mut Unit
§Examples
use ndarray_unit::Unit;
use ndarray_unit::BaseUnit;
let mut meter = Unit::new();
meter.add_single_unit(BaseUnit::METER, 1);
let mut meter_per_second = meter.clone();
meter_per_second.add_single_unit(BaseUnit::SECOND, -1);
println!("{}", meter_per_second);Output
// m·s⁻¹Trait Implementations§
Source§impl Div for &Unit
Given two Units, perform a division between them and return a new Unit.
It substracts the base_units of the two given Struct
impl Div for &Unit
Given two Units, perform a division between them and return a new Unit.
It substracts the base_units of the two given Struct
§Exemples
use ndarray_unit::Unit;
use ndarray_unit::BaseUnit;
let meter = Unit::from_vec(vec![(BaseUnit::METER, 1)]);
let second_square = Unit::from_vec(vec![(BaseUnit::SECOND, 2)]);
let acceleration = &meter / &second_square;
// acceleration = Unit { base_units: {METER : 1, SECOND: -2} }Source§impl Mul for &Unit
Given two Units, perform a multiplication between them and return a new Unit.
It adds the base_units of the two given Struct
impl Mul for &Unit
Given two Units, perform a multiplication between them and return a new Unit.
It adds the base_units of the two given Struct
§Exemples
use ndarray_unit::Unit;
use ndarray_unit::BaseUnit;
let meter = Unit::from_vec(vec![(BaseUnit::METER, 1)]);
let square_meter = Unit::from_vec(vec![(BaseUnit::METER, 2)]);
let cube_meter = &meter * &square_meter;
// cube_meter = Unit { base_units: {METER : 3} }Auto Trait Implementations§
impl Freeze for Unit
impl RefUnwindSafe for Unit
impl Send for Unit
impl Sync for Unit
impl Unpin for Unit
impl UnsafeUnpin for Unit
impl UnwindSafe for Unit
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more