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
Number
operation fails recoverably. - Defines a collation order for
Float
. - Defines a collation order for
Number
.
Enums
- A complex number.
- The type of a
Complex
number. - 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
NumberType
for a non-Number
type 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.