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§

Boolean
A boolean value.
BooleanType
The type of a Boolean.
ComplexCollator
Defines a collation order for Complex.
Error
The error type returned when a Number operation fails recoverably.
FloatCollator
Defines a collation order for Float.
NumberCollator
Defines a collation order for Number.

Enums§

Complex
A complex number.
ComplexType
The type of a Complex number.
Float
A floating-point number.
FloatType
The type of a Float.
Int
A signed integer.
IntType
The type of an Int.
Number
A generic number.
NumberType
The type of a generic Number.
UInt
An unsigned integer.
UIntType
The type of a UInt.

Traits§

DType
Define a NumberType for a non-Number type such as a Rust primitive.
FloatInstance
Defines common operations on floating-point numeric types.
NumberClass
Defines common properties of numeric types supported by Number.
NumberInstance
Defines common operations on numeric types supported by Number.
RealInstance
Defines common operations on real (i.e. not Complex) numbers.
Trigonometry
Trigonometric functions.