pub struct SignedAmount(/* private fields */);
Expand description
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§
Source§impl SignedAmount
impl SignedAmount
Sourcepub const ZERO: SignedAmount
pub const ZERO: SignedAmount
The zero amount.
Sourcepub const ONE_SAT: SignedAmount
pub const ONE_SAT: SignedAmount
Exactly one satoshi.
Sourcepub const ONE_BTC: SignedAmount
pub const ONE_BTC: SignedAmount
Exactly one bitcoin.
Sourcepub fn from_sat(satoshi: i64) -> SignedAmount
pub fn from_sat(satoshi: i64) -> SignedAmount
Create an SignedAmount with satoshi precision and the given number of satoshis.
Sourcepub fn as_sat(self) -> i64
pub fn as_sat(self) -> i64
Get the number of satoshis in this SignedAmount.
Sourcepub fn max_value() -> SignedAmount
pub fn max_value() -> SignedAmount
The maximum value of an SignedAmount.
Sourcepub fn min_value() -> SignedAmount
pub fn min_value() -> SignedAmount
The minimum value of an SignedAmount.
Sourcepub fn from_btc(btc: f64) -> Result<SignedAmount, ParseAmountError>
pub fn from_btc(btc: f64) -> Result<SignedAmount, ParseAmountError>
Convert from a value expressing bitcoins to an SignedAmount.
Sourcepub fn from_str_in(
s: &str,
denom: Denomination,
) -> Result<SignedAmount, ParseAmountError>
pub fn from_str_in( s: &str, denom: Denomination, ) -> Result<SignedAmount, 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.
Sourcepub fn from_str_with_denomination(
s: &str,
) -> Result<SignedAmount, ParseAmountError>
pub fn from_str_with_denomination( s: &str, ) -> Result<SignedAmount, ParseAmountError>
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].
Sourcepub fn to_float_in(self, denom: Denomination) -> f64
pub fn to_float_in(self, denom: Denomination) -> f64
Express this SignedAmount as a floating-point value in the given denomination.
Please be aware of the risk of using floating-point numbers.
Sourcepub fn as_btc(self) -> f64
pub fn as_btc(self) -> f64
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.
Sourcepub fn from_float_in(
value: f64,
denom: Denomination,
) -> Result<SignedAmount, ParseAmountError>
pub fn from_float_in( value: f64, denom: Denomination, ) -> Result<SignedAmount, ParseAmountError>
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.
Sourcepub fn fmt_value_in(self, f: &mut dyn Write, denom: Denomination) -> Result
pub fn fmt_value_in(self, f: &mut dyn Write, denom: Denomination) -> Result
Format the value of this SignedAmount in the given denomination.
Does not include the denomination.
Sourcepub fn to_string_in(self, denom: Denomination) -> String
pub fn to_string_in(self, denom: Denomination) -> String
Get a string number of this SignedAmount in the given denomination.
Does not include the denomination.
Sourcepub fn to_string_with_denomination(self, denom: Denomination) -> String
pub fn to_string_with_denomination(self, denom: Denomination) -> String
Get a formatted string of this SignedAmount in the given denomination, suffixed with the abbreviation for the denomination.
Sourcepub fn abs(self) -> SignedAmount
pub fn abs(self) -> SignedAmount
Get the absolute value of this SignedAmount.
Sourcepub fn signum(self) -> i64
pub fn signum(self) -> i64
Returns a number representing sign of this SignedAmount.
0
if the amount is zero1
if the amount is positive-1
if the amount is negative
Sourcepub fn is_positive(self) -> bool
pub fn is_positive(self) -> bool
Returns true
if this SignedAmount is positive and false
if
this SignedAmount is zero or negative.
Sourcepub fn is_negative(self) -> bool
pub fn is_negative(self) -> bool
Returns true
if this SignedAmount is negative and false
if
this SignedAmount is zero or positive.
Sourcepub fn checked_abs(self) -> Option<SignedAmount>
pub fn checked_abs(self) -> Option<SignedAmount>
Get the absolute value of this SignedAmount.
Returns None if overflow occurred. (self == min_value()
)
Sourcepub fn checked_add(self, rhs: SignedAmount) -> Option<SignedAmount>
pub fn checked_add(self, rhs: SignedAmount) -> Option<SignedAmount>
Checked addition. Returns None if overflow occurred.
Sourcepub fn checked_sub(self, rhs: SignedAmount) -> Option<SignedAmount>
pub fn checked_sub(self, rhs: SignedAmount) -> Option<SignedAmount>
Checked subtraction. Returns None if overflow occurred.
Sourcepub fn checked_mul(self, rhs: i64) -> Option<SignedAmount>
pub fn checked_mul(self, rhs: i64) -> Option<SignedAmount>
Checked multiplication. Returns None if overflow occurred.
Sourcepub fn checked_div(self, rhs: i64) -> Option<SignedAmount>
pub fn checked_div(self, rhs: i64) -> Option<SignedAmount>
Checked integer division. Be aware that integer division loses the remainder if no exact division can be made. Returns None if overflow occurred.
Sourcepub fn checked_rem(self, rhs: i64) -> Option<SignedAmount>
pub fn checked_rem(self, rhs: i64) -> Option<SignedAmount>
Checked remainder. Returns None if overflow occurred.
Sourcepub fn positive_sub(self, rhs: SignedAmount) -> Option<SignedAmount>
pub fn positive_sub(self, rhs: SignedAmount) -> Option<SignedAmount>
Subtraction that doesn’t allow negative SignedAmounts. Returns None if either self, [rhs] or the result is strictly negative.
Sourcepub fn to_unsigned(self) -> Result<Amount, ParseAmountError>
pub fn to_unsigned(self) -> Result<Amount, ParseAmountError>
Convert to an unsigned amount.
Trait Implementations§
Source§impl Add for SignedAmount
impl Add for SignedAmount
Source§type Output = SignedAmount
type Output = SignedAmount
+
operator.Source§impl AddAssign for SignedAmount
impl AddAssign for SignedAmount
Source§fn add_assign(&mut self, other: SignedAmount)
fn add_assign(&mut self, other: SignedAmount)
+=
operation. Read moreSource§impl Clone for SignedAmount
impl Clone for SignedAmount
Source§fn clone(&self) -> SignedAmount
fn clone(&self) -> SignedAmount
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SignedAmount
impl Debug for SignedAmount
Source§impl Default for SignedAmount
impl Default for SignedAmount
Source§impl Display for SignedAmount
impl Display for SignedAmount
Source§impl Div<i64> for SignedAmount
impl Div<i64> for SignedAmount
Source§impl DivAssign<i64> for SignedAmount
impl DivAssign<i64> for SignedAmount
Source§fn div_assign(&mut self, rhs: i64)
fn div_assign(&mut self, rhs: i64)
/=
operation. Read moreSource§impl FromStr for SignedAmount
impl FromStr for SignedAmount
Source§impl Hash for SignedAmount
impl Hash for SignedAmount
Source§impl Mul<i64> for SignedAmount
impl Mul<i64> for SignedAmount
Source§impl MulAssign<i64> for SignedAmount
impl MulAssign<i64> for SignedAmount
Source§fn mul_assign(&mut self, rhs: i64)
fn mul_assign(&mut self, rhs: i64)
*=
operation. Read moreSource§impl Ord for SignedAmount
impl Ord for SignedAmount
Source§fn cmp(&self, other: &SignedAmount) -> Ordering
fn cmp(&self, other: &SignedAmount) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for SignedAmount
impl PartialEq for SignedAmount
Source§impl PartialOrd for SignedAmount
impl PartialOrd for SignedAmount
Source§impl Rem<i64> for SignedAmount
impl Rem<i64> for SignedAmount
Source§impl RemAssign<i64> for SignedAmount
impl RemAssign<i64> for SignedAmount
Source§fn rem_assign(&mut self, modulus: i64)
fn rem_assign(&mut self, modulus: i64)
%=
operation. Read moreSource§impl Sub for SignedAmount
impl Sub for SignedAmount
Source§type Output = SignedAmount
type Output = SignedAmount
-
operator.Source§impl SubAssign for SignedAmount
impl SubAssign for SignedAmount
Source§fn sub_assign(&mut self, other: SignedAmount)
fn sub_assign(&mut self, other: SignedAmount)
-=
operation. Read more