Crate number_general
source ·Expand description
Provides a generic Number enum with Boolean, Complex, Float, Int,
and UInt variants, as well as a NumberCollator, ComplexCollator, and
FloatCollator since these types do not implement Ord.
Number supports casting with safecast.
For (de)serialization with serde, enable the "serde" feature.
For (de)coding with destream, enable the "stream" feature.
Example usage:
let sequence: Vec<Number> = vec![true.into(), 2.into(), 3.5.into(), [1.0, -0.5].into()];
let actual = sequence.into_iter().product();
let expected = Number::from(num::Complex::<f64>::new(7., -3.5));
assert_eq!(expected, actual);
assert_eq!(Int::cast_from(actual), Int::from(7));Structs
- A boolean value.
- The type of a
Boolean. - Defines a collation order for
Complex. - The error type returned when a
Numberoperation fails recoverably. - Defines a collation order for
Float. - Defines a collation order for
Number.
Enums
- A complex number.
- The type of a
Complexnumber. - A floating-point number.
- The type of a
Float. - A signed integer.
- The type of an
Int. - A generic number.
- The type of a generic
Number. - An unsigned integer.
- The type of a
UInt.
Traits
- Define a
NumberTypefor a non-Numbertype such as a Rust primitive. - Defines common operations on floating-point numeric types.
- Defines common properties of numeric types supported by
Number. - Defines common operations on numeric types supported by
Number. - Defines common operations on real (i.e. not
Complex) numbers. - Trigonometric functions.