[−][src]Struct bitcoin::util::amount::Amount
Amount
The [Amount] 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. Also note that
since the internal representation of amounts is unsigned, subtracting below
zero is considered an underflow and will cause a panic if you're not using
the checked arithmetic methods.
Methods
impl Amount
[src]
pub const ZERO: Amount
[src]
The zero amount.
pub const ONE_SAT: Amount
[src]
Exactly one satoshi.
pub const ONE_BTC: Amount
[src]
Exactly one bitcoin.
pub fn from_sat(satoshi: u64) -> Amount
[src]
Create an [Amount] with satoshi precision and the given number of satoshis.
pub fn as_sat(self) -> u64
[src]
Get the number of satoshis in this [Amount].
pub fn max_value() -> Amount
[src]
The maximum value of an [Amount].
pub fn min_value() -> Amount
[src]
The minimum value of an [Amount].
pub fn from_btc(btc: f64) -> Result<Amount, ParseAmountError>
[src]
Convert from a value expressing bitcoins to an [Amount].
pub fn from_str_in(
s: &str,
denom: Denomination
) -> Result<Amount, ParseAmountError>
[src]
s: &str,
denom: Denomination
) -> Result<Amount, ParseAmountError>
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<Amount, 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 [Amount] 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 [Amount] 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<Amount, ParseAmountError>
[src]
value: f64,
denom: Denomination
) -> Result<Amount, ParseAmountError>
Convert this [Amount] 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 [Amount] 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 [Amount] 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 [Amount] in the given denomination, suffixed with the abbreviation for the denomination.
pub fn checked_add(self, rhs: Amount) -> Option<Amount>
[src]
Checked addition. Returns [None] if overflow occurred.
pub fn checked_sub(self, rhs: Amount) -> Option<Amount>
[src]
Checked subtraction. Returns [None] if overflow occurred.
pub fn checked_mul(self, rhs: u64) -> Option<Amount>
[src]
Checked multiplication. Returns [None] if overflow occurred.
pub fn checked_div(self, rhs: u64) -> Option<Amount>
[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: u64) -> Option<Amount>
[src]
Checked remainder. Returns [None] if overflow occurred.
pub fn to_signed(self) -> Result<SignedAmount, ParseAmountError>
[src]
Convert to a signed amount.
Trait Implementations
impl Ord for Amount
[src]
fn cmp(&self, other: &Amount) -> Ordering
[src]
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
fn clamp(self, min: Self, max: Self) -> Self
[src]
clamp
)Restrict a value to a certain interval. Read more
impl PartialOrd<Amount> for Amount
[src]
fn partial_cmp(&self, other: &Amount) -> Option<Ordering>
[src]
fn lt(&self, other: &Amount) -> bool
[src]
fn le(&self, other: &Amount) -> bool
[src]
fn gt(&self, other: &Amount) -> bool
[src]
fn ge(&self, other: &Amount) -> bool
[src]
impl Default for Amount
[src]
impl Clone for Amount
[src]
fn clone(&self) -> Amount
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl PartialEq<Amount> for Amount
[src]
impl Eq for Amount
[src]
impl Copy for Amount
[src]
impl Display for Amount
[src]
impl Debug for Amount
[src]
impl Rem<u64> for Amount
[src]
type Output = Amount
The resulting type after applying the %
operator.
fn rem(self, modulus: u64) -> Self
[src]
impl Sub<Amount> for Amount
[src]
type Output = Amount
The resulting type after applying the -
operator.
fn sub(self, rhs: Amount) -> Self::Output
[src]
impl Add<Amount> for Amount
[src]
type Output = Amount
The resulting type after applying the +
operator.
fn add(self, rhs: Amount) -> Self::Output
[src]
impl Mul<u64> for Amount
[src]
type Output = Amount
The resulting type after applying the *
operator.
fn mul(self, rhs: u64) -> Self::Output
[src]
impl Div<u64> for Amount
[src]
type Output = Amount
The resulting type after applying the /
operator.
fn div(self, rhs: u64) -> Self::Output
[src]
impl AddAssign<Amount> for Amount
[src]
fn add_assign(&mut self, other: Amount)
[src]
impl SubAssign<Amount> for Amount
[src]
fn sub_assign(&mut self, other: Amount)
[src]
impl MulAssign<u64> for Amount
[src]
fn mul_assign(&mut self, rhs: u64)
[src]
impl DivAssign<u64> for Amount
[src]
fn div_assign(&mut self, rhs: u64)
[src]
impl RemAssign<u64> for Amount
[src]
fn rem_assign(&mut self, modulus: u64)
[src]
impl Hash for Amount
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl FromStr for Amount
[src]
Auto Trait Implementations
impl Unpin for Amount
impl Sync for Amount
impl Send for Amount
impl UnwindSafe for Amount
impl RefUnwindSafe for Amount
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,