pub struct Fee(/* private fields */);Expand description
Fee amount.
Can be negative when representing rebates or fee adjustments in reconciliation.
Implementations§
Source§impl Fee
impl Fee
Sourcepub fn new(value: Decimal) -> Self
pub fn new(value: Decimal) -> Self
Creates a new value from a rust_decimal::Decimal.
Sourcepub fn from_f64(value: f64) -> Result<Self, Error>
pub fn from_f64(value: f64) -> Result<Self, Error>
Creates a value from a 64-bit floating-point number.
§Errors
Returns Error::InvalidFloat when value is NaN or infinite.
Sourcepub fn from_str(s: &str) -> Result<Self, Error>
pub fn from_str(s: &str) -> Result<Self, Error>
Creates a value from a string representation.
§Examples
let price = Price::from_str("42350.75")?;
assert_eq!(price.to_string(), "42350.75");
let negative_price = Price::from_str("-10.5")?;
assert_eq!(negative_price.to_string(), "-10.5");§Errors
Returns Error::InvalidFormat when string cannot be parsed.
Sourcepub fn from_str_rounded(
s: &str,
scale: u32,
rounding: RoundingStrategy,
) -> Result<Self, Error>
pub fn from_str_rounded( s: &str, scale: u32, rounding: RoundingStrategy, ) -> Result<Self, Error>
Creates a value from a string representation with rounding.
The value is rounded to the specified scale using the provided rounding strategy.
§Errors
Returns Error::InvalidFormat when string cannot be parsed.
Sourcepub fn from_f64_rounded(
value: f64,
scale: u32,
rounding: RoundingStrategy,
) -> Result<Self, Error>
pub fn from_f64_rounded( value: f64, scale: u32, rounding: RoundingStrategy, ) -> Result<Self, Error>
Creates a value from a 64-bit floating-point number with rounding.
The value is rounded to the specified scale using the provided rounding strategy.
§Errors
Returns Error::InvalidFloat when value is NaN or infinite.
Sourcepub fn from_decimal_rounded(
decimal: Decimal,
scale: u32,
rounding: RoundingStrategy,
) -> Result<Self, Error>
pub fn from_decimal_rounded( decimal: Decimal, scale: u32, rounding: RoundingStrategy, ) -> Result<Self, Error>
Creates a value from a rust_decimal::Decimal with rounding.
The value is rounded to the specified scale using the provided rounding strategy.
§Errors
This method is infallible for signed types as rounding cannot produce errors.
Sourcepub fn to_decimal(&self) -> Decimal
pub fn to_decimal(&self) -> Decimal
Returns the underlying decimal value.
Sourcepub fn checked_add(self, other: Self) -> Result<Self, Error>
pub fn checked_add(self, other: Self) -> Result<Self, Error>
Sourcepub fn checked_sub(self, other: Self) -> Result<Self, Error>
pub fn checked_sub(self, other: Self) -> Result<Self, Error>
Sourcepub fn checked_neg(self) -> Result<Self, Error>
pub fn checked_neg(self) -> Result<Self, Error>
Sourcepub fn checked_mul_i64(self, scalar: i64) -> Result<Self, Error>
pub fn checked_mul_i64(self, scalar: i64) -> Result<Self, Error>
Sourcepub fn checked_mul_u64(self, scalar: u64) -> Result<Self, Error>
pub fn checked_mul_u64(self, scalar: u64) -> Result<Self, Error>
Sourcepub fn checked_mul_f64(self, factor: f64) -> Result<Self, Error>
pub fn checked_mul_f64(self, factor: f64) -> Result<Self, Error>
Safely multiplies by an f64 factor.
§Errors
Returns Error::InvalidFloat when factor is NaN or infinite.
Returns Error::Overflow on overflow.
Sourcepub fn checked_div_i64(self, divisor: i64) -> Result<Self, Error>
pub fn checked_div_i64(self, divisor: i64) -> Result<Self, Error>
Safely divides by an i64 divisor.
§Errors
Returns Error::DivisionByZero when divisor is zero.
Returns Error::Overflow on overflow.
Sourcepub fn checked_div_u64(self, divisor: u64) -> Result<Self, Error>
pub fn checked_div_u64(self, divisor: u64) -> Result<Self, Error>
Safely divides by a u64 divisor.
§Errors
Returns Error::DivisionByZero when divisor is zero.
Returns Error::Overflow on overflow.
Sourcepub fn checked_div_f64(self, divisor: f64) -> Result<Self, Error>
pub fn checked_div_f64(self, divisor: f64) -> Result<Self, Error>
Safely divides by an f64 divisor.
§Errors
Returns Error::InvalidFloat when divisor is NaN or infinite.
Returns Error::DivisionByZero when divisor is zero.
Returns Error::Overflow on overflow.
Sourcepub fn checked_rem_i64(self, divisor: i64) -> Result<Self, Error>
pub fn checked_rem_i64(self, divisor: i64) -> Result<Self, Error>
Safely computes remainder by i64 divisor.
§Errors
Returns Error::DivisionByZero when divisor is zero.
Returns Error::Overflow on overflow.
Sourcepub fn checked_rem_u64(self, divisor: u64) -> Result<Self, Error>
pub fn checked_rem_u64(self, divisor: u64) -> Result<Self, Error>
Safely computes remainder by u64 divisor.
§Errors
Returns Error::DivisionByZero when divisor is zero.
Returns Error::Overflow on overflow.
Sourcepub fn checked_rem_f64(self, divisor: f64) -> Result<Self, Error>
pub fn checked_rem_f64(self, divisor: f64) -> Result<Self, Error>
Safely computes remainder by f64 divisor.
§Errors
Returns Error::InvalidFloat when divisor is NaN or infinite.
Returns Error::DivisionByZero when divisor is zero.
Returns Error::Overflow on overflow.
Source§impl Fee
impl Fee
Sourcepub fn to_position_size(self) -> PositionSize
pub fn to_position_size(self) -> PositionSize
Converts fee into a position size for instruments where fees are paid in the base asset.
The resulting position size is negative (representing an outflow) for positive fees, and positive for fee rebates.