Length

Struct Length 

Source
pub struct Length { /* private fields */ }
Expand description

The quantity of distance between two points in spacetime.

Reference unit: Astronomical Unit (‘au’)

Predefined units:

SymbolNameDefinitionEquivalent in ‘au’
kmKilometer1000·m6.684587122268446e-9
lsLightsecond299792458·m0.002003988804100004
lyLightyear31557600·ls63241.07708426629
pcParsec648000/π·au206264.80624709636
klyKilolightyear1000·ly63241077.08426629
kpcKiloparsec1000·pc206264806.24709636
MlyMegalightyear10⁶·ly63241077084.26629
MpcMegaparsec10⁶·pc206264806247.09636
GlyGigalightyear10⁹·ly63241077084266.29
GpcGigaparsec10⁹·pc206264806247096.36

Trait Implementations§

Source§

impl Add for Length

Source§

type Output = Length

The resulting type after applying the + operator.
Source§

fn add(self, rhs: Self) -> Self::Output

Performs the + operation. Read more
Source§

impl Clone for Length

Source§

fn clone(&self) -> Length

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Length

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Length

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Div<&Duration> for &Length

Source§

type Output = <Length as Div<Duration>>::Output

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &Duration) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<&Duration> for Length
where Self: Div<Duration>,

Source§

type Output = <Length as Div<Duration>>::Output

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &Duration) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<&Speed> for &Length
where Length: Div<Speed>,

Source§

type Output = <Length as Div<Speed>>::Output

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &Speed) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<&Speed> for Length
where Self: Div<Speed>,

Source§

type Output = <Length as Div<Speed>>::Output

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &Speed) -> Self::Output

Performs the / operation. Read more
Source§

impl<'a> Div<Duration> for &'a Length

Source§

type Output = <Length as Div<Duration>>::Output

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Duration) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<Duration> for Length

Source§

type Output = Speed

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Duration) -> Self::Output

Performs the / operation. Read more
Source§

impl<PQ: Quantity> Div<Rate<Length, PQ>> for Length

Source§

type Output = PQ

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Rate<Self, PQ>) -> Self::Output

Performs the / operation. Read more
Source§

impl<'a> Div<Speed> for &'a Length
where Length: Div<Speed>,

Source§

type Output = <Length as Div<Speed>>::Output

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Speed) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<Speed> for Length
where Self: HasRefUnit, Speed: HasRefUnit,

Source§

type Output = Duration

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Speed) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<f64> for Length

Source§

type Output = Length

The resulting type after applying the / operator.
Source§

fn div(self, rhs: AmountT) -> Self::Output

Performs the / operation. Read more
Source§

impl Div for Length

Source§

type Output = f64

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Self) -> Self::Output

Performs the / operation. Read more
Source§

impl HasRefUnit for Length

Source§

const REF_UNIT: LengthUnit = LengthUnit::AstronomicalUnit

Unit used as reference for scaling the units of Self::UnitType.
Source§

fn unit_from_scale(amnt: f64) -> Option<Self::UnitType>

Returns Some(unit) where unit.scale() == amnt, or None if there is no such unit.
Source§

fn equiv_amount(&self, unit: Self::UnitType) -> f64

Returns factor so that factor * unit == self.
Source§

fn convert(&self, to_unit: Self::UnitType) -> Self

Returns qty where qty == self and qty.unit() is to_unit.
Source§

fn eq(&self, other: &Self) -> bool

Returns true, if self and other have equivalent amounts, otherwise false.
Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

Returns the partial order of selfs amount and others eqivalent amount in selfs unit.
Source§

fn add(self, rhs: Self) -> Self

Returns the sum of self and other
Source§

fn sub(self, rhs: Self) -> Self

Returns the difference between self and other
Source§

fn div(self, rhs: Self) -> f64

Returns the quotient self / other
Source§

impl Mul<Length> for AmountT

Source§

type Output = Length

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Length) -> Self::Output

Performs the * operation. Read more
Source§

impl<TQ: Quantity> Mul<Rate<TQ, Length>> for Length

Source§

type Output = TQ

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Rate<TQ, Self>) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<f64> for Length

Source§

type Output = Length

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: AmountT) -> Self::Output

Performs the * operation. Read more
Source§

impl PartialEq for Length

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Length

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Quantity for Length

Source§

type UnitType = LengthUnit

Associated type of unit
Source§

fn new(amount: AmountT, unit: Self::UnitType) -> Self

Returns a new instance of the type implementing Quantity.
Source§

fn amount(&self) -> AmountT

Returns the amount of self.
Source§

fn unit(&self) -> Self::UnitType

Returns the unit of self.
Source§

fn iter_units() -> impl Iterator<Item = Self::UnitType>

Returns an iterator over the variants of Self::UnitType.
Source§

fn unit_from_symbol(symbol: &str) -> Option<Self::UnitType>

Returns Some(unit) where unit.symbol() == symbol, or None if there is no such unit.
Source§

fn eq(&self, other: &Self) -> bool

Return true if self and other have the same unit and their amounts are equal, otherwise false.
Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

Returns the partial order of selfs and others amounts, if both have the same unit, otherwise None.
Source§

fn add(self, rhs: Self) -> Self

Returns the sum of self and other, if both have the same unit. Read more
Source§

fn sub(self, rhs: Self) -> Self

Returns the difference between self and other, if both have the same unit. Read more
Source§

fn div(self, rhs: Self) -> f64

Returns the quotient self / other, if both have the same unit. Read more
Source§

fn fmt(&self, form: &mut Formatter<'_>) -> Result<(), Error>

Formats self using the given formatter. Read more
Source§

impl Sub for Length

Source§

type Output = Length

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
Source§

impl Copy for Length

Source§

impl Eq for Length

Auto Trait Implementations§

§

impl Freeze for Length

§

impl RefUnwindSafe for Length

§

impl Send for Length

§

impl Sync for Length

§

impl Unpin for Length

§

impl UnwindSafe for Length

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.