[][src]Struct bitcoin::util::amount::SignedAmount

pub struct SignedAmount(_);

SignedAmount

The SignedAmount type can be used to express Bitcoin amounts that supports arithmetic and conversion to various denominations.

Warning!

This type implements several arithmetic operations from std::ops. To prevent errors due to overflow or underflow when using these operations, it is advised to instead use the checked arithmetic methods whose names start with checked_. The operations from std::ops that Amount implements will panic when overflow or underflow occurs.

Implementations

impl SignedAmount[src]

pub const ZERO: SignedAmount[src]

The zero amount.

pub const ONE_SAT: SignedAmount[src]

Exactly one satoshi.

pub const ONE_BTC: SignedAmount[src]

Exactly one bitcoin.

pub fn from_sat(satoshi: i64) -> SignedAmount[src]

Create an SignedAmount with satoshi precision and the given number of satoshis.

pub fn as_sat(self) -> i64[src]

Get the number of satoshis in this SignedAmount.

pub fn max_value() -> SignedAmount[src]

The maximum value of an SignedAmount.

pub fn min_value() -> SignedAmount[src]

The minimum value of an SignedAmount.

pub fn from_btc(btc: f64) -> Result<SignedAmount, ParseAmountError>[src]

Convert from a value expressing bitcoins to an SignedAmount.

pub fn from_str_in(
    s: &str,
    denom: Denomination
) -> Result<SignedAmount, ParseAmountError>
[src]

Parse a decimal string as a value in the given denomination.

Note: This only parses the value string. If you want to parse a value with denomination, use FromStr.

pub fn from_str_with_denomination(
    s: &str
) -> Result<SignedAmount, ParseAmountError>
[src]

Parses amounts with denomination suffix like they are produced with [to_string_with_denomination] or with fmt::Display. If you want to parse only the amount without the denomination, use [from_str_in].

pub fn to_float_in(self, denom: Denomination) -> f64[src]

Express this SignedAmount as a floating-point value in the given denomination.

Please be aware of the risk of using floating-point numbers.

pub fn as_btc(self) -> f64[src]

Express this SignedAmount as a floating-point value in Bitcoin.

Equivalent to to_float_in(Denomination::Bitcoin).

Please be aware of the risk of using floating-point numbers.

pub fn from_float_in(
    value: f64,
    denom: Denomination
) -> Result<SignedAmount, ParseAmountError>
[src]

Convert this SignedAmount in floating-point notation with a given denomination. Can return error if the amount is too big, too precise or negative.

Please be aware of the risk of using floating-point numbers.

pub fn fmt_value_in(self, f: &mut dyn Write, denom: Denomination) -> Result[src]

Format the value of this SignedAmount in the given denomination.

Does not include the denomination.

pub fn to_string_in(self, denom: Denomination) -> String[src]

Get a string number of this SignedAmount in the given denomination.

Does not include the denomination.

pub fn to_string_with_denomination(self, denom: Denomination) -> String[src]

Get a formatted string of this SignedAmount in the given denomination, suffixed with the abbreviation for the denomination.

pub fn abs(self) -> SignedAmount[src]

Get the absolute value of this SignedAmount.

pub fn signum(self) -> i64[src]

Returns a number representing sign of this SignedAmount.

  • 0 if the amount is zero
  • 1 if the amount is positive
  • -1 if the amount is negative

pub fn is_positive(self) -> bool[src]

Returns true if this SignedAmount is positive and false if this SignedAmount is zero or negative.

pub fn is_negative(self) -> bool[src]

Returns true if this SignedAmount is negative and false if this SignedAmount is zero or positive.

pub fn checked_abs(self) -> Option<SignedAmount>[src]

Get the absolute value of this SignedAmount. Returns None if overflow occurred. (self == min_value())

pub fn checked_add(self, rhs: SignedAmount) -> Option<SignedAmount>[src]

Checked addition. Returns None if overflow occurred.

pub fn checked_sub(self, rhs: SignedAmount) -> Option<SignedAmount>[src]

Checked subtraction. Returns None if overflow occurred.

pub fn checked_mul(self, rhs: i64) -> Option<SignedAmount>[src]

Checked multiplication. Returns None if overflow occurred.

pub fn checked_div(self, rhs: i64) -> Option<SignedAmount>[src]

Checked integer division. Be aware that integer division loses the remainder if no exact division can be made. Returns None if overflow occurred.

pub fn checked_rem(self, rhs: i64) -> Option<SignedAmount>[src]

Checked remainder. Returns None if overflow occurred.

pub fn positive_sub(self, rhs: SignedAmount) -> Option<SignedAmount>[src]

Subtraction that doesn't allow negative SignedAmounts. Returns None if either self, [rhs] or the result is strictly negative.

pub fn to_unsigned(self) -> Result<Amount, ParseAmountError>[src]

Convert to an unsigned amount.

Trait Implementations

impl Add<SignedAmount> for SignedAmount[src]

type Output = SignedAmount

The resulting type after applying the + operator.

impl AddAssign<SignedAmount> for SignedAmount[src]

impl Clone for SignedAmount[src]

impl Copy for SignedAmount[src]

impl Debug for SignedAmount[src]

impl Default for SignedAmount[src]

impl Display for SignedAmount[src]

impl Div<i64> for SignedAmount[src]

type Output = SignedAmount

The resulting type after applying the / operator.

impl DivAssign<i64> for SignedAmount[src]

impl Eq for SignedAmount[src]

impl FromStr for SignedAmount[src]

type Err = ParseAmountError

The associated error which can be returned from parsing.

impl Hash for SignedAmount[src]

impl Mul<i64> for SignedAmount[src]

type Output = SignedAmount

The resulting type after applying the * operator.

impl MulAssign<i64> for SignedAmount[src]

impl Ord for SignedAmount[src]

impl PartialEq<SignedAmount> for SignedAmount[src]

impl PartialOrd<SignedAmount> for SignedAmount[src]

impl Rem<i64> for SignedAmount[src]

type Output = SignedAmount

The resulting type after applying the % operator.

impl RemAssign<i64> for SignedAmount[src]

impl StructuralEq for SignedAmount[src]

impl StructuralPartialEq for SignedAmount[src]

impl Sub<SignedAmount> for SignedAmount[src]

type Output = SignedAmount

The resulting type after applying the - operator.

impl SubAssign<SignedAmount> for SignedAmount[src]

Auto Trait Implementations

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.