Skip to main content

Module quantity

Module quantity 

Source
Expand description

Represents a quantity with a non-negative value and specified precision.

Quantity is an immutable value type for representing trade sizes, order quantities, and position amounts. It enforces non-negative values and provides fixed-point arithmetic for deterministic calculations.

§Arithmetic behavior

Adding or subtracting two Quantity values requires matching effective fixed-point scales. These operations panic on a scale mismatch. Comparisons and hashes account for scale differences without rounding. Without the defi feature, constructors restrict values to a single storage scale.

OperationResultNotes
Quantity + QuantityQuantityPrecision is max of both operands.
Quantity - QuantityQuantityPanics if result would be negative.
Quantity * QuantityQuantityPrecision is max of both operands.
Quantity + DecimalDecimal
Quantity - DecimalDecimal
Quantity * DecimalDecimal
Quantity / DecimalDecimal
Quantity + f64f64
Quantity - f64f64
Quantity * f64f64
Quantity / f64f64

Multiplication accepts mixed scales and truncates the result toward zero at the result scale.

§Immutability

Quantity is immutable. All arithmetic operations return new instances.

Structs§

Quantity
Represents a quantity with a non-negative value and specified precision.

Constants§

QUANTITY_MAX
The maximum valid quantity value that can be represented.
QUANTITY_MIN
The minimum valid quantity value that can be represented.
QUANTITY_UNDEF
The sentinel value for an unset or null quantity.

Statics§

QUANTITY_RAW_MAX
The maximum raw quantity integer value.

Functions§

check_positive_quantity
Checks if the quantity value is positive.

Type Aliases§

QuantityRaw