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 Unit
s, 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 Unit
s, 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 Unit
s, 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 Unit
s, 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 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