Struct tapyrus::util::amount::SignedAmount
source · pub struct SignedAmount(/* private fields */);
Expand description
SignedAmount
The SignedAmount type can be used to express TPC 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_TAP: SignedAmount = _
pub const ONE_TAP: SignedAmount = _
Exactly one tapyrus.
sourcepub const ONE_TPC: SignedAmount = _
pub const ONE_TPC: SignedAmount = _
Exactly one TPC.
sourcepub fn from_tap(tapyrus: i64) -> SignedAmount
pub fn from_tap(tapyrus: i64) -> SignedAmount
Create an SignedAmount with tapyrus precision and the given number of tapyruses.
sourcepub fn as_tap(self) -> i64
pub fn as_tap(self) -> i64
Get the number of tapyrus 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_tpc(tpc: f64) -> Result<SignedAmount, ParseAmountError>
pub fn from_tpc(tpc: f64) -> Result<SignedAmount, ParseAmountError>
Convert from a value expressing tpcs 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_tpc(self) -> f64
pub fn as_tpc(self) -> f64
Express this SignedAmount as a floating-point value in TPC.
Equivalent to to_float_in(Denomination::TPC)
.
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
§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§fn eq(&self, other: &SignedAmount) -> bool
fn eq(&self, other: &SignedAmount) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for SignedAmount
impl PartialOrd for SignedAmount
source§fn partial_cmp(&self, other: &SignedAmount) -> Option<Ordering>
fn partial_cmp(&self, other: &SignedAmount) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§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
§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