Skip to main content

CompactDecimal

Struct CompactDecimal 

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

A struct containing a Decimal significand together with an exponent, representing a number written in compact notation (such as 1.2M). This represents a source number, as defined in UTS #35. The value exponent=0 represents a number in non-compact notation (such as 1 200 000).

This is distinct from crate::ScientificDecimal because it does not represent leading 0s nor a sign in the exponent, and behaves differently in pluralization.

Implementations§

Source§

impl CompactDecimal

Source

pub fn from_significand_and_exponent(significand: Decimal, exponent: u8) -> Self

Constructs a CompactDecimal from its significand and exponent.

Source

pub fn significand(&self) -> &Decimal

Returns a reference to the significand of self.

assert_eq!(
    CompactDecimal::from_str("+1.20c6").unwrap().significand(),
    &Decimal::from_str("+1.20").unwrap()
);
Source

pub fn into_significand(self) -> Decimal

Returns the significand of self.

assert_eq!(
    CompactDecimal::from_str("+1.20c6")
        .unwrap()
        .into_significand(),
    Decimal::from_str("+1.20").unwrap()
);
Source

pub fn exponent(&self) -> u8

Returns the exponent of self.

assert_eq!(CompactDecimal::from_str("+1.20c6").unwrap().exponent(), 6);
assert_eq!(CompactDecimal::from_str("1729").unwrap().exponent(), 0);
Source§

impl CompactDecimal

Source

pub fn to_string(&self) -> String

Converts the given value to a String.

Under the hood, this uses an efficient [Writeable] implementation. However, in order to avoid allocating a string, it is more efficient to use [Writeable] directly.

Source§

impl CompactDecimal

Source

pub fn try_from_str(s: &str) -> Result<Self, ParseError>

Parses a CompactDecimal.

Trait Implementations§

Source§

impl Clone for CompactDecimal

Source§

fn clone(&self) -> CompactDecimal

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 Debug for CompactDecimal

Source§

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

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

impl Display for CompactDecimal

This trait is implemented for compatibility with fmt!. To create a string, [Writeable::write_to_string] is usually more efficient.

Source§

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

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

impl FromStr for CompactDecimal

Source§

type Err = ParseError

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

fn from_str(s: &str) -> Result<Self, Self::Err>

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

impl PartialEq for CompactDecimal

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 StructuralPartialEq for CompactDecimal

Source§

impl Writeable for CompactDecimal

Render the CompactDecimal in sampleValue syntax. The letter c is used, rather than the deprecated e.

§Examples

assert_writeable_eq!(
    CompactDecimal::from_str("+1.20c6").unwrap(),
    "+1.20c6"
);
assert_writeable_eq!(CompactDecimal::from_str("+1729").unwrap(), "+1729");
Source§

fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result

Writes a string to the given sink. Errors from the sink are bubbled up. The default implementation delegates to write_to_parts, and discards any Part annotations.
Source§

fn writeable_length_hint(&self) -> LengthHint

Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
Source§

fn write_to_parts<S>(&self, sink: &mut S) -> Result<(), Error>
where S: PartsWrite + ?Sized,

Write bytes and Part annotations to the given sink. Errors from the sink are bubbled up. The default implementation delegates to write_to, and doesn’t produce any Part annotations.
Source§

fn writeable_borrow(&self) -> Option<&str>

Returns a &str that matches the output of write_to, if possible. Read more
Source§

fn write_to_string(&self) -> Cow<'_, str>

Creates a new string with the data from this Writeable. Read more

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