Struct dec::OrderedDecimal[][src]

pub struct OrderedDecimal<D>(pub D);

A wrapper for a decimal number that provides an implementation of Ord and Hash.

Like the OrderedFloat type provided by the ordered_float crate, but for decimals.

NaN is treated as equal to itself and greater than all non-NaN values. All other values are compared via their PartialOrd implementation.

At the moment OrderedDecimal can only wrap Decimal64 and Decimal128. Support for Decimal32 is not planned, but support for Decimal<N> would be welcomed, provided a suitable implementation can be found.

Note that the order used by OrderedDecimal is not the same as the order used by the total_cmp method. The total_cmp method takes exponents into account and therefore does not consider e.g. 1.2 and 1.20 to be equal.

Implementations

impl<D> OrderedDecimal<D>[src]

pub fn into_inner(self) -> D[src]

Consumes the ordered decimal wrapper, returning the decimal within.

Trait Implementations

impl<D> Add<D> for OrderedDecimal<D> where
    D: Add<Output = D>, 
[src]

type Output = Self

The resulting type after applying the + operator.

impl<D> Add<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Add<Output = D>, 
[src]

type Output = Self

The resulting type after applying the + operator.

impl Add<OrderedDecimal<Decimal128>> for Decimal128[src]

type Output = Self

The resulting type after applying the + operator.

impl Add<OrderedDecimal<Decimal64>> for Decimal64[src]

type Output = Self

The resulting type after applying the + operator.

impl<D> AddAssign<D> for OrderedDecimal<D> where
    D: Add<Output = D> + Copy
[src]

Adds inner directly.

impl<D> AddAssign<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: AddAssign
[src]

impl<D: Clone> Clone for OrderedDecimal<D>[src]

impl<D: Copy> Copy for OrderedDecimal<D>[src]

impl<D: Debug> Debug for OrderedDecimal<D>[src]

impl<D> Default for OrderedDecimal<D> where
    D: Default
[src]

impl<D> Display for OrderedDecimal<D> where
    D: Display
[src]

impl<D> Div<D> for OrderedDecimal<D> where
    D: Div<Output = D>, 
[src]

type Output = Self

The resulting type after applying the / operator.

impl<D> Div<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Div<Output = D>, 
[src]

type Output = Self

The resulting type after applying the / operator.

impl Div<OrderedDecimal<Decimal128>> for Decimal128[src]

type Output = Self

The resulting type after applying the / operator.

impl Div<OrderedDecimal<Decimal64>> for Decimal64[src]

type Output = Self

The resulting type after applying the / operator.

impl<D> DivAssign<D> for OrderedDecimal<D> where
    D: Div<Output = D> + Copy
[src]

Divs inner directly.

impl<D> DivAssign<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: DivAssign
[src]

impl<D> Eq for OrderedDecimal<D> where
    Self: Ord
[src]

impl<D> From<Decimal128> for OrderedDecimal<D> where
    D: From<Decimal128>, 
[src]

impl<D> From<Decimal32> for OrderedDecimal<D> where
    D: From<Decimal32>, 
[src]

impl<D> From<Decimal64> for OrderedDecimal<D> where
    D: From<Decimal64>, 
[src]

impl<D> From<i32> for OrderedDecimal<D> where
    D: From<i32>, 
[src]

impl<D> From<u32> for OrderedDecimal<D> where
    D: From<u32>, 
[src]

impl<D> FromStr for OrderedDecimal<D> where
    D: FromStr<Err = ParseDecimalError>, 
[src]

type Err = ParseDecimalError

The associated error which can be returned from parsing.

impl Hash for OrderedDecimal<Decimal64>[src]

impl Hash for OrderedDecimal<Decimal128>[src]

impl<D> Mul<D> for OrderedDecimal<D> where
    D: Mul<Output = D>, 
[src]

type Output = Self

The resulting type after applying the * operator.

impl<D> Mul<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Mul<Output = D>, 
[src]

type Output = Self

The resulting type after applying the * operator.

impl Mul<OrderedDecimal<Decimal128>> for Decimal128[src]

type Output = Self

The resulting type after applying the * operator.

impl Mul<OrderedDecimal<Decimal64>> for Decimal64[src]

type Output = Self

The resulting type after applying the * operator.

impl<D> MulAssign<D> for OrderedDecimal<D> where
    D: Mul<Output = D> + Copy
[src]

Muls inner directly.

impl<D> MulAssign<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: MulAssign
[src]

impl<D> Neg for OrderedDecimal<D> where
    D: Neg<Output = D>, 
[src]

type Output = Self

The resulting type after applying the - operator.

impl Ord for OrderedDecimal<Decimal64>[src]

impl Ord for OrderedDecimal<Decimal128>[src]

impl<D> PartialEq<OrderedDecimal<D>> for OrderedDecimal<D> where
    Self: Ord
[src]

impl<D> PartialOrd<OrderedDecimal<D>> for OrderedDecimal<D> where
    Self: Ord
[src]

impl<'a, D> Product<&'a OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Product<&'a D> + 'a, 
[src]

impl<D> Product<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Product
[src]

impl<D> Rem<D> for OrderedDecimal<D> where
    D: Rem<Output = D>, 
[src]

type Output = Self

The resulting type after applying the % operator.

impl<D> Rem<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Rem<Output = D>, 
[src]

type Output = Self

The resulting type after applying the % operator.

impl Rem<OrderedDecimal<Decimal128>> for Decimal128[src]

type Output = Self

The resulting type after applying the % operator.

impl Rem<OrderedDecimal<Decimal64>> for Decimal64[src]

type Output = Self

The resulting type after applying the % operator.

impl<D> RemAssign<D> for OrderedDecimal<D> where
    D: Rem<Output = D> + Copy
[src]

Rems inner directly.

impl<D> RemAssign<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: RemAssign
[src]

impl<D> Sub<D> for OrderedDecimal<D> where
    D: Sub<Output = D>, 
[src]

type Output = Self

The resulting type after applying the - operator.

impl<D> Sub<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Sub<Output = D>, 
[src]

type Output = Self

The resulting type after applying the - operator.

impl Sub<OrderedDecimal<Decimal128>> for Decimal128[src]

type Output = Self

The resulting type after applying the - operator.

impl Sub<OrderedDecimal<Decimal64>> for Decimal64[src]

type Output = Self

The resulting type after applying the - operator.

impl<D> SubAssign<D> for OrderedDecimal<D> where
    D: Sub<Output = D> + Copy
[src]

Subs inner directly.

impl<D> SubAssign<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: SubAssign
[src]

impl<'a, D> Sum<&'a OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Sum<&'a D> + 'a, 
[src]

impl<D> Sum<OrderedDecimal<D>> for OrderedDecimal<D> where
    D: Sum
[src]

Auto Trait Implementations

impl<D> RefUnwindSafe for OrderedDecimal<D> where
    D: RefUnwindSafe

impl<D> Send for OrderedDecimal<D> where
    D: Send

impl<D> Sync for OrderedDecimal<D> where
    D: Sync

impl<D> Unpin for OrderedDecimal<D> where
    D: Unpin

impl<D> UnwindSafe for OrderedDecimal<D> where
    D: UnwindSafe

Blanket Implementations

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

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

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

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 = Infallible

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.