Skip to main content

Decimal

Struct Decimal 

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

Decimal

Owned fixed-point decimal with an explicit i128 mantissa and base-10 scale. Candid and Serde encode and decode decimal text in every format.

Arithmetic saturates on overflow, division by zero resolves to ZERO, and normalization keeps equivalent values on one canonical representation.

Implementations§

Source§

impl Decimal

Source

pub fn checked_add(self, rhs: Decimal) -> Option<Decimal>

Checked addition; returns None when scale alignment or mantissa addition overflows the fixed decimal representation.

Source

pub fn checked_sub(self, rhs: Decimal) -> Option<Decimal>

Checked subtraction; returns None when negating the right side, scale alignment, or mantissa addition overflows.

Source

pub fn checked_mul(self, rhs: Decimal) -> Option<Decimal>

Checked multiplication; returns None when scale or mantissa multiplication overflows the fixed decimal representation.

Source

pub fn checked_div(self, rhs: Decimal) -> Option<Decimal>

Checked division; returns None when the divisor is zero or the rounded fixed-scale result cannot be represented.

Source

pub const fn round_dp(&self, dp: u32) -> Decimal

Round to a given number of decimal places.

Source

pub const fn trunc_dp(&self, dp: u32) -> Decimal

Truncate toward zero to a given number of decimal places.

Source

pub const fn abs(&self) -> Decimal

Return the absolute value of the decimal.

Source

pub const fn floor_dp0(&self) -> Decimal

Return the greatest integral decimal less than or equal to the value.

Source

pub const fn ceil_dp0(&self) -> Decimal

Return the least integral decimal greater than or equal to the value.

Source

pub fn saturating_add(self, rhs: Decimal) -> Decimal

Saturating addition.

Source

pub fn saturating_sub(self, rhs: Decimal) -> Decimal

Saturating subtraction.

Source

pub fn checked_rem(self, rhs: Decimal) -> Option<Decimal>

Checked remainder; returns None on division by zero.

Source

pub const fn checked_abs(&self) -> Option<Decimal>

Checked absolute value; returns None for the one i128::MIN mantissa case that cannot be represented as positive i128.

Source

pub fn powu(&self, exp: u64) -> Decimal

Integer exponentiation.

Source

pub fn checked_powu(&self, exp: u64) -> Option<Decimal>

Checked integer exponentiation using the same exponentiation-by-squaring shape as powu, but failing instead of saturating on intermediate multiplication overflow.

Source§

impl Decimal

Source

pub const ZERO: Decimal

Source

pub const fn max_supported_scale() -> u32

Returns the maximum supported decimal scale.

Source

pub const fn new(num: i64, scale: u32) -> Decimal

Construct a decimal from mantissa and scale.

§Panics

Panics when scale exceeds the supported range.

Source

pub const fn try_new(num: i64, scale: u32) -> Option<Decimal>

Fallible constructor from mantissa and scale.

Source

pub fn from_num<N>(n: N) -> Option<Decimal>
where N: NumericValue,

Fallible conversion from common numeric types.

This path is lossy for float inputs and may lose precision for large values. Prefer exact integer constructors (from_i64, from_u64) or explicit float constructors (from_f32_lossy, from_f64_lossy) when possible.

Source

pub const fn from_i64(n: i64) -> Option<Decimal>

Exact conversion from i64.

Source

pub const fn from_u64(n: u64) -> Option<Decimal>

Exact conversion from u64.

Source

pub const fn from_i128(n: i128) -> Option<Decimal>

Exact conversion from i128.

Source

pub fn from_u128(n: u128) -> Option<Decimal>

Exact conversion from u128.

Source

pub fn from_f32_lossy(n: f32) -> Option<Decimal>

Explicit lossy conversion from f32.

Uses decimal text round-tripping from the binary float representation. This is intentionally lossy and should be used only when float input is required.

Source

pub fn from_f64_lossy(n: f64) -> Option<Decimal>

Explicit lossy conversion from f64.

Uses decimal text round-tripping from the binary float representation. This is intentionally lossy and should be used only when float input is required.

Source

pub const fn parts(&self) -> DecimalParts

PARTS

Decompose into mantissa and scale.

Source

pub const fn is_integer(&self) -> bool

Returns true if the decimal has no fractional component.

Source

pub fn scale_to_integer(&self, target_scale: u32) -> Option<i128>

Scale by 10^target_scale and require an integer result.

Returns None if:

  • fractional precision would be lost
  • integer overflow occurs
Source

pub fn to_i32(&self) -> Option<i32>

Convert to i32 when the decimal is integral and in range.

Source

pub fn to_i64(&self) -> Option<i64>

Convert to i64 when the decimal is integral and in range.

Source

pub fn to_i128(&self) -> Option<i128>

Convert to i128 when the decimal is integral.

Source

pub fn to_u64(&self) -> Option<u64>

Convert to u64 when the decimal is integral and in range.

Source

pub fn to_u128(&self) -> Option<u128>

Convert to u128 when the decimal is integral and in range.

Source

pub fn to_f32(&self) -> Option<f32>

Convert to f32 when the decimal is finite in f32.

Source

pub fn to_f64(&self) -> Option<f64>

Convert to f64 when the decimal is finite in f64.

Source

pub const fn try_from_i128_with_scale(num: i128, scale: u32) -> Option<Decimal>

Fallibly build from a raw mantissa and scale.

Source

pub const fn from_i128_with_scale(num: i128, scale: u32) -> Decimal

Build from a raw mantissa and scale.

§Panics

Panics when the mantissa and scale cannot be represented without violating the decimal scale invariant.

Source

pub const fn normalize(&self) -> Decimal

Normalize trailing zeros.

Source

pub const fn is_sign_negative(&self) -> bool

Returns true if the value is negative.

Source

pub const fn scale(&self) -> u32

Returns the number of fractional decimal places.

Source

pub const fn mantissa(&self) -> i128

Returns the mantissa component.

Source

pub const fn is_zero(&self) -> bool

Returns true if the value is zero.

Trait Implementations§

Source§

impl Add for Decimal

Source§

type Output = Decimal

The resulting type after applying the + operator.
Source§

fn add(self, rhs: Decimal) -> <Decimal as Add>::Output

Performs the + operation. Read more
Source§

impl Add<Decimal> for Usd

Source§

type Output = Usd

The resulting type after applying the + operator.
Source§

fn add(self, other: Decimal) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<Decimal> for E8s

Source§

type Output = E8s

The resulting type after applying the + operator.
Source§

fn add(self, other: Decimal) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<Decimal> for E18s

Source§

type Output = E18s

The resulting type after applying the + operator.
Source§

fn add(self, other: Decimal) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<E8s> for Decimal

Source§

type Output = E8s

The resulting type after applying the + operator.
Source§

fn add(self, other: E8s) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<E18s> for Decimal

Source§

type Output = E18s

The resulting type after applying the + operator.
Source§

fn add(self, other: E18s) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<Usd> for Decimal

Source§

type Output = Usd

The resulting type after applying the + operator.
Source§

fn add(self, other: Usd) -> Self::Output

Performs the + operation. Read more
Source§

impl AddAssign for Decimal

Source§

fn add_assign(&mut self, rhs: Decimal)

Performs the += operation. Read more
Source§

impl AddAssign<Decimal> for Usd

Source§

fn add_assign(&mut self, other: Decimal)

Performs the += operation. Read more
Source§

impl AddAssign<Decimal> for E8s

Source§

fn add_assign(&mut self, other: Decimal)

Performs the += operation. Read more
Source§

impl AddAssign<Decimal> for E18s

Source§

fn add_assign(&mut self, other: Decimal)

Performs the += operation. Read more
Source§

impl CandidType for Decimal

Source§

fn ty() -> Type

Source§

fn _ty() -> Type

Source§

fn idl_serialize<S>( &self, serializer: S, ) -> Result<(), <S as Serializer>::Error>
where S: Serializer,

Source§

fn id() -> TypeId

Source§

fn _ty_doc() -> TypeDoc

Source§

impl Clone for Decimal

Source§

fn clone(&self) -> Decimal

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Decimal

Source§

impl Debug for Decimal

Source§

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

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

impl Default for Decimal

Source§

fn default() -> Decimal

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Decimal

Source§

fn deserialize<D>( deserializer: D, ) -> Result<Decimal, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for Decimal

Source§

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

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

impl Div for Decimal

Source§

type Output = Decimal

The resulting type after applying the / operator.
Source§

fn div(self, rhs: Decimal) -> <Decimal as Div>::Output

Performs the / operation. Read more
Source§

impl Div<Decimal> for Usd

Source§

type Output = Usd

The resulting type after applying the / operator.
Source§

fn div(self, other: Decimal) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<Decimal> for E8s

Source§

type Output = E8s

The resulting type after applying the / operator.
Source§

fn div(self, other: Decimal) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<Decimal> for E18s

Source§

type Output = E18s

The resulting type after applying the / operator.
Source§

fn div(self, other: Decimal) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<E8s> for Decimal

Source§

type Output = E8s

The resulting type after applying the / operator.
Source§

fn div(self, other: E8s) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<E18s> for Decimal

Source§

type Output = E18s

The resulting type after applying the / operator.
Source§

fn div(self, other: E18s) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<Usd> for Decimal

Source§

type Output = Usd

The resulting type after applying the / operator.
Source§

fn div(self, other: Usd) -> Self::Output

Performs the / operation. Read more
Source§

impl DivAssign for Decimal

Source§

fn div_assign(&mut self, rhs: Decimal)

Performs the /= operation. Read more
Source§

impl DivAssign<Decimal> for Usd

Source§

fn div_assign(&mut self, other: Decimal)

Performs the /= operation. Read more
Source§

impl DivAssign<Decimal> for E8s

Source§

fn div_assign(&mut self, other: Decimal)

Performs the /= operation. Read more
Source§

impl DivAssign<Decimal> for E18s

Source§

fn div_assign(&mut self, other: Decimal)

Performs the /= operation. Read more
Source§

impl Eq for Decimal

Source§

impl From<f32> for Decimal

Source§

fn from(n: f32) -> Decimal

Converts to this type from the input type.
Source§

impl From<f64> for Decimal

Source§

fn from(n: f64) -> Decimal

Converts to this type from the input type.
Source§

impl From<i8> for Decimal

Source§

fn from(n: i8) -> Decimal

Converts to this type from the input type.
Source§

impl From<i16> for Decimal

Source§

fn from(n: i16) -> Decimal

Converts to this type from the input type.
Source§

impl From<i32> for Decimal

Source§

fn from(n: i32) -> Decimal

Converts to this type from the input type.
Source§

impl From<i64> for Decimal

Source§

fn from(n: i64) -> Decimal

Converts to this type from the input type.
Source§

impl From<i128> for Decimal

Source§

fn from(n: i128) -> Decimal

Converts to this type from the input type.
Source§

impl From<u8> for Decimal

Source§

fn from(n: u8) -> Decimal

Converts to this type from the input type.
Source§

impl From<u16> for Decimal

Source§

fn from(n: u16) -> Decimal

Converts to this type from the input type.
Source§

impl From<u32> for Decimal

Source§

fn from(n: u32) -> Decimal

Converts to this type from the input type.
Source§

impl From<u64> for Decimal

Source§

fn from(n: u64) -> Decimal

Converts to this type from the input type.
Source§

impl From<u128> for Decimal

Source§

fn from(n: u128) -> Decimal

Converts to this type from the input type.
Source§

impl FromStr for Decimal

Source§

type Err = ParseDecimalError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Decimal, <Decimal as FromStr>::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for Decimal

Source§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Inner<Decimal> for Usd

Source§

fn inner(&self) -> &Decimal

Borrow the wrapped value.
Source§

fn into_inner(self) -> Decimal

Consume the wrapper and return its value.
Source§

impl Inner<Decimal> for E8s

Source§

fn inner(&self) -> &Decimal

Borrow the wrapped value.
Source§

fn into_inner(self) -> Decimal

Consume the wrapper and return its value.
Source§

impl Inner<Decimal> for E18s

Source§

fn inner(&self) -> &Decimal

Borrow the wrapped value.
Source§

fn into_inner(self) -> Decimal

Consume the wrapper and return its value.
Source§

impl Mul for Decimal

Source§

type Output = Decimal

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Decimal) -> <Decimal as Mul>::Output

Performs the * operation. Read more
Source§

impl Mul<Decimal> for Usd

Source§

type Output = Usd

The resulting type after applying the * operator.
Source§

fn mul(self, other: Decimal) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<Decimal> for E8s

Source§

type Output = E8s

The resulting type after applying the * operator.
Source§

fn mul(self, other: Decimal) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<Decimal> for E18s

Source§

type Output = E18s

The resulting type after applying the * operator.
Source§

fn mul(self, other: Decimal) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<E8s> for Decimal

Source§

type Output = E8s

The resulting type after applying the * operator.
Source§

fn mul(self, other: E8s) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<E18s> for Decimal

Source§

type Output = E18s

The resulting type after applying the * operator.
Source§

fn mul(self, other: E18s) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<Usd> for Decimal

Source§

type Output = Usd

The resulting type after applying the * operator.
Source§

fn mul(self, other: Usd) -> Self::Output

Performs the * operation. Read more
Source§

impl MulAssign for Decimal

Source§

fn mul_assign(&mut self, rhs: Decimal)

Performs the *= operation. Read more
Source§

impl MulAssign<Decimal> for Usd

Source§

fn mul_assign(&mut self, other: Decimal)

Performs the *= operation. Read more
Source§

impl MulAssign<Decimal> for E8s

Source§

fn mul_assign(&mut self, other: Decimal)

Performs the *= operation. Read more
Source§

impl MulAssign<Decimal> for E18s

Source§

fn mul_assign(&mut self, other: Decimal)

Performs the *= operation. Read more
Source§

impl Neg for Decimal

Source§

type Output = Decimal

The resulting type after applying the - operator.
Source§

fn neg(self) -> <Decimal as Neg>::Output

Performs the unary - operation. Read more
Source§

impl NormalizeAuto for Decimal

Source§

fn normalize_self(&mut self, _ctx: &mut dyn VisitorContext)

Source§

impl NormalizeCustom for Decimal

Source§

fn normalize_custom(&mut self, _ctx: &mut dyn VisitorContext)

Source§

impl Normalizer<Decimal> for RoundDecimalPlaces

Source§

fn normalize(&self, value: &mut Decimal) -> Result<(), String>

Source§

fn normalize_with_context( &self, value: &mut T, ctx: &mut dyn VisitorContext, ) -> Result<(), String>

Source§

impl NumericValue for Decimal

Source§

fn try_to_decimal(&self) -> Option<Decimal>

Convert this value into Decimal for generic numeric handling.
Source§

fn try_from_decimal(value: Decimal) -> Option<Decimal>

Rebuild the value from Decimal after generic numeric handling.
Source§

impl Ord for Decimal

Source§

fn cmp(&self, other: &Decimal) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

fn clamp_to<R>(self, range: R) -> Self
where Self: Sized, R: ClampBounds<Self>,

🔬This is a nightly-only experimental API. (clamp_to)
Restrict a value to a certain range. Read more
Source§

impl PartialEq for Decimal

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialEq<Decimal> for Usd

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialEq<Decimal> for E8s

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialEq<Decimal> for E18s

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialEq<E8s> for Decimal

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialEq<E18s> for Decimal

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialEq<Usd> for Decimal

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl PartialOrd for Decimal

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 PartialOrd<Decimal> for Usd

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 PartialOrd<Decimal> for E8s

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 PartialOrd<Decimal> for E18s

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 PartialOrd<E8s> for Decimal

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 PartialOrd<E18s> for Decimal

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 PartialOrd<Usd> for Decimal

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 Product for Decimal

Source§

fn product<I>(iter: I) -> Decimal
where I: Iterator<Item = Decimal>,

Takes an iterator and generates Self from the elements by multiplying the items.
Source§

impl Product<Decimal> for Usd

Source§

fn product<I: Iterator<Item = Decimal>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by multiplying the items.
Source§

impl Product<Decimal> for E8s

Source§

fn product<I: Iterator<Item = Decimal>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by multiplying the items.
Source§

impl Product<Decimal> for E18s

Source§

fn product<I: Iterator<Item = Decimal>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by multiplying the items.
Source§

impl Rem for Decimal

Source§

type Output = Decimal

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: Decimal) -> <Decimal as Rem>::Output

Performs the % operation. Read more
Source§

impl Rem<Decimal> for Usd

Source§

type Output = Usd

The resulting type after applying the % operator.
Source§

fn rem(self, other: Decimal) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<Decimal> for E8s

Source§

type Output = E8s

The resulting type after applying the % operator.
Source§

fn rem(self, other: Decimal) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<Decimal> for E18s

Source§

type Output = E18s

The resulting type after applying the % operator.
Source§

fn rem(self, other: Decimal) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<E8s> for Decimal

Source§

type Output = E8s

The resulting type after applying the % operator.
Source§

fn rem(self, other: E8s) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<E18s> for Decimal

Source§

type Output = E18s

The resulting type after applying the % operator.
Source§

fn rem(self, other: E18s) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<Usd> for Decimal

Source§

type Output = Usd

The resulting type after applying the % operator.
Source§

fn rem(self, other: Usd) -> Self::Output

Performs the % operation. Read more
Source§

impl RemAssign for Decimal

Source§

fn rem_assign(&mut self, rhs: Decimal)

Performs the %= operation. Read more
Source§

impl RemAssign<Decimal> for Usd

Source§

fn rem_assign(&mut self, other: Decimal)

Performs the %= operation. Read more
Source§

impl RemAssign<Decimal> for E8s

Source§

fn rem_assign(&mut self, other: Decimal)

Performs the %= operation. Read more
Source§

impl RemAssign<Decimal> for E18s

Source§

fn rem_assign(&mut self, other: Decimal)

Performs the %= operation. Read more
Source§

impl Serialize for Decimal

Source§

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Sub for Decimal

Source§

type Output = Decimal

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Decimal) -> <Decimal as Sub>::Output

Performs the - operation. Read more
Source§

impl Sub<Decimal> for Usd

Source§

type Output = Usd

The resulting type after applying the - operator.
Source§

fn sub(self, other: Decimal) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<Decimal> for E8s

Source§

type Output = E8s

The resulting type after applying the - operator.
Source§

fn sub(self, other: Decimal) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<Decimal> for E18s

Source§

type Output = E18s

The resulting type after applying the - operator.
Source§

fn sub(self, other: Decimal) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<E8s> for Decimal

Source§

type Output = E8s

The resulting type after applying the - operator.
Source§

fn sub(self, other: E8s) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<E18s> for Decimal

Source§

type Output = E18s

The resulting type after applying the - operator.
Source§

fn sub(self, other: E18s) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<Usd> for Decimal

Source§

type Output = Usd

The resulting type after applying the - operator.
Source§

fn sub(self, other: Usd) -> Self::Output

Performs the - operation. Read more
Source§

impl SubAssign for Decimal

Source§

fn sub_assign(&mut self, rhs: Decimal)

Performs the -= operation. Read more
Source§

impl SubAssign<Decimal> for Usd

Source§

fn sub_assign(&mut self, other: Decimal)

Performs the -= operation. Read more
Source§

impl SubAssign<Decimal> for E8s

Source§

fn sub_assign(&mut self, other: Decimal)

Performs the -= operation. Read more
Source§

impl SubAssign<Decimal> for E18s

Source§

fn sub_assign(&mut self, other: Decimal)

Performs the -= operation. Read more
Source§

impl Sum for Decimal

Source§

fn sum<I>(iter: I) -> Decimal
where I: Iterator<Item = Decimal>,

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl Sum<Decimal> for Usd

Source§

fn sum<I: Iterator<Item = Decimal>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl Sum<Decimal> for E8s

Source§

fn sum<I: Iterator<Item = Decimal>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl Sum<Decimal> for E18s

Source§

fn sum<I: Iterator<Item = Decimal>>(iter: I) -> Self

Takes an iterator and generates Self from the elements by “summing up” the items.
Source§

impl ValidateAuto for Decimal

Source§

fn validate_self(&self, _ctx: &mut dyn VisitorContext)

Source§

impl ValidateCustom for Decimal

Source§

fn validate_custom(&self, _ctx: &mut dyn VisitorContext)

Source§

impl Validator<Decimal> for MaxDecimalPlaces

Source§

fn validate(&self, n: &Decimal, ctx: &mut dyn VisitorContext)

Source§

impl Visitable for Decimal

Source§

fn type_identity(&self) -> &'static str

Return the concrete Rust application-value type used for callback diagnostics.
Source§

fn drive(&self, _: &mut dyn VisitorCore)

Source§

fn drive_mut(&mut self, _: &mut dyn VisitorMutCore)

Auto Trait Implementations§

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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<T> CustomError for T
where T: Display + Debug + Send + Sync + 'static,

Source§

fn as_any(&self) -> &(dyn Any + Sync + Send + 'static)

Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + Sync + Send + 'static)

Source§

fn as_box_any(self: Box<T>) -> Box<dyn Any + Sync + Send>

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> Normalize for T

Source§

impl<T> NormalizeAndValidate for T
where T: Visitable,

Source§

fn normalize_and_validate(self) -> Result<Self, VisitorError>

Normalize and then validate this application-owned value. Read more
Source§

impl<T, Rhs> NumAssignOps<Rhs> for T
where T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,

Source§

impl<T, Rhs, Output> NumOps<Rhs, Output> for T
where T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> Validate for T