Number

Struct Number 

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

High-precision decimal number

Implementations§

Source§

impl Number

Source

pub fn new() -> Self

Create a new Number initialized to zero

Source

pub fn from_i64(mantissa: i64) -> Result<Self, NumberError>

Create a Number from an i64 mantissa

Source

pub fn from_mantissa_exponent( mantissa: i64, exponent: i32, ) -> Result<Self, NumberError>

Create a Number from mantissa and exponent

Source

pub fn from_xrpl_iou_value(buffer: XrplIouValue) -> Result<Self, NumberError>

Create a Number from an XRP Ledger IOU value (8-byte buffer)

Parses the XRP Ledger token amount format:

  • Bit 0 (MSB): Type bit (1=token, 0=XRP)
  • Bit 1: Sign bit (1=positive, 0=negative)
  • Bits 2-9: Exponent (unsigned, add 97 to get actual exponent in range -96 to +80)
  • Bits 10-63: Mantissa (54 bits, normalized to 10^15 to 10^16-1)
Source

pub fn to_xrpl_iou_value(&self) -> Result<XrplIouValue, NumberError>

Convert this Number to an XRP Ledger IOU value (8-byte buffer)

Serializes to the XRP Ledger token amount format:

  • Bit 0 (MSB): Type bit (1=token, 0=XRP)
  • Bit 1: Sign bit (1=positive, 0=negative)
  • Bits 2-9: Exponent (unsigned, add 97 to get actual exponent in range -96 to +80)
  • Bits 10-63: Mantissa (54 bits, normalized to 10^15 to 10^16-1)
Source

pub fn mantissa(&self) -> i64

Get the mantissa of this Number

Source

pub fn exponent(&self) -> i32

Get the exponent of this Number

Source

pub fn to_i64(&self) -> Result<i64, NumberError>

Convert to i64 (with potential precision loss)

Source

pub fn signum(&self) -> i32

Get the sign of this Number (-1, 0, or 1)

Source

pub fn is_zero(&self) -> bool

Check if this Number is zero

Source

pub fn abs(&self) -> Result<Self, NumberError>

Compute absolute value

Source

pub fn pow(&self, exponent: u32) -> Result<Self, NumberError>

Raise this Number to an unsigned integer power

Source

pub fn root(&self, degree: u32) -> Result<Self, NumberError>

Compute the nth root of this Number

Source

pub fn sqrt(&self) -> Result<Self, NumberError>

Compute the square root of this Number

Source

pub fn log10(&self) -> Result<Self, NumberError>

Compute the base-10 logarithm of this Number

Source

pub fn get_rounding_mode() -> RoundingMode

Get the current global rounding mode

Source

pub fn set_rounding_mode(mode: RoundingMode) -> RoundingMode

Set the global rounding mode, returning the previous mode

Source

pub fn min() -> Self

Get the minimum representable Number

Source

pub fn max() -> Self

Get the maximum representable Number

Source

pub fn lowest() -> Self

Get the lowest (most negative) representable Number

Trait Implementations§

Source§

impl Add for &Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl Add for Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the + operator.
Source§

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

Performs the + operation. Read more
Source§

impl AddAssign<&Number> for Number

Source§

fn add_assign(&mut self, rhs: &Number)

Performs the += operation. Read more
Source§

impl AddAssign for Number

Source§

fn add_assign(&mut self, rhs: Number)

Performs the += operation. Read more
Source§

impl Clone for Number

Source§

fn clone(&self) -> Self

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 Number

Source§

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

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

impl Default for Number

Source§

fn default() -> Self

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

impl Display for Number

Source§

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

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

impl Div for &Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl Div for Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the / operator.
Source§

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

Performs the / operation. Read more
Source§

impl DivAssign<&Number> for Number

Source§

fn div_assign(&mut self, rhs: &Number)

Performs the /= operation. Read more
Source§

impl DivAssign for Number

Source§

fn div_assign(&mut self, rhs: Number)

Performs the /= operation. Read more
Source§

impl Drop for Number

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl From<i64> for Number

Source§

fn from(value: i64) -> Self

Converts to this type from the input type.
Source§

impl Mul for &Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl Mul for Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the * operator.
Source§

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

Performs the * operation. Read more
Source§

impl MulAssign<&Number> for Number

Source§

fn mul_assign(&mut self, rhs: &Number)

Performs the *= operation. Read more
Source§

impl MulAssign for Number

Source§

fn mul_assign(&mut self, rhs: Number)

Performs the *= operation. Read more
Source§

impl Neg for &Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl Neg for Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
Source§

impl Ord for Number

Source§

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

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

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

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

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

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

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

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

impl PartialEq for Number

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 Number

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 Sub for &Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl Sub for Number

Source§

type Output = Result<Number, NumberError>

The resulting type after applying the - operator.
Source§

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

Performs the - operation. Read more
Source§

impl SubAssign<&Number> for Number

Source§

fn sub_assign(&mut self, rhs: &Number)

Performs the -= operation. Read more
Source§

impl SubAssign for Number

Source§

fn sub_assign(&mut self, rhs: Number)

Performs the -= operation. Read more
Source§

impl TryFrom<&Number> for XrplIouValue

Source§

type Error = NumberError

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

fn try_from(number: &Number) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<[u8; 8]> for Number

Source§

type Error = NumberError

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

fn try_from(buffer: XrplIouValue) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<Number> for XrplIouValue

Source§

type Error = NumberError

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

fn try_from(number: Number) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl Eq for Number

Source§

impl Send for Number

Source§

impl Sync for Number

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.