[][src]Struct ndarray_unit::Unit

pub struct Unit { /* fields omitted */ }

Methods

impl Unit[src]

pub fn new() -> Unit[src]

Return an Unit with an empty set of BaseUnit

pub fn from_vec(list: Vec<(BaseUnit, i32)>) -> Unit[src]

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>[src]

pub fn get_inverse(&self) -> Unit[src]

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());

pub fn add_single_unit(&mut self, unit: BaseUnit, n: i32)[src]

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

impl Clone for Unit[src]

impl PartialEq<Unit> for Unit[src]

impl Debug for Unit[src]

impl Display for Unit[src]

impl<'_> Div<&'_ Unit> for &'_ Unit[src]

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} }

type Output = Unit

The resulting type after applying the / operator.

impl<'_> Mul<&'_ Unit> for &'_ Unit[src]

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} }

type Output = Unit

The resulting type after applying the * operator.

Auto Trait Implementations

impl Send for Unit

impl Sync for Unit

impl Unpin for Unit

impl UnwindSafe for Unit

impl RefUnwindSafe for Unit

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = !

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]