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

Enums

Traits