Trait num_traits::Num

source ·
pub trait Num: PartialEq + Zero + One + NumOps {
    type FromStrRadixErr;

    fn from_str_radix(
        str: &str,
        radix: u32
    ) -> Result<Self, Self::FromStrRadixErr>; }
Expand description

The base trait for numeric types, covering 0 and 1 values, comparisons, basic numeric operations, and string conversion.

Required Associated Types§

Required Methods§

Convert from a string and radix (typically 2..=36).

Examples
use num_traits::Num;

let result = <i32 as Num>::from_str_radix("27", 10);
assert_eq!(result, Ok(27));

let result = <i32 as Num>::from_str_radix("foo", 10);
assert!(result.is_err());
Supported radices

The exact range of supported radices is at the discretion of each type implementation. For primitive integers, this is implemented by the inherent from_str_radix methods in the standard library, which panic if the radix is not in the range from 2 to 36. The implementation in this crate for primitive floats is similar.

For third-party types, it is suggested that implementations should follow suit and at least accept 2..=36 without panicking, but an Err may be returned for any unsupported radix. It’s possible that a type might not even support the common radix 10, nor any, if string parsing doesn’t make sense for that type.

Implementations on Foreign Types§

Implementors§

impl<Frac> Num for FixedI8<Frac>where
    Frac: IsLessOrEqual<U6, Output = True> + LeEqU8,

impl<Frac> Num for FixedI16<Frac>where
    Frac: IsLessOrEqual<U14, Output = True> + LeEqU16,

impl<Frac> Num for FixedI32<Frac>where
    Frac: IsLessOrEqual<U30, Output = True> + LeEqU32,

impl<Frac> Num for FixedI64<Frac>where
    Frac: IsLessOrEqual<U62, Output = True> + LeEqU64,

impl<Frac> Num for FixedI128<Frac>where
    Frac: IsLessOrEqual<U126, Output = True> + LeEqU128,

impl<Frac> Num for FixedU8<Frac>where
    Frac: IsLessOrEqual<U7, Output = True> + LeEqU8,

impl<Frac> Num for FixedU16<Frac>where
    Frac: IsLessOrEqual<U15, Output = True> + LeEqU16,

impl<Frac> Num for FixedU32<Frac>where
    Frac: IsLessOrEqual<U31, Output = True> + LeEqU32,

impl<Frac> Num for FixedU64<Frac>where
    Frac: IsLessOrEqual<U63, Output = True> + LeEqU64,

impl<Frac> Num for FixedU128<Frac>where
    Frac: IsLessOrEqual<U127, Output = True> + LeEqU128,

impl Num for BigInt

impl Num for BigUint

impl<T: Num + Clone> Num for Complex<T>

impl<T: Clone + Integer> Num for Ratio<T>

impl<T: Float> Num for NotNan<T>

impl Num for AutoSimd<[f32; 2]>

impl Num for AutoSimd<[f32; 4]>

impl Num for AutoSimd<[f32; 8]>

impl Num for AutoSimd<[f32; 16]>

impl Num for AutoSimd<[f64; 2]>

impl Num for AutoSimd<[f64; 4]>

impl Num for AutoSimd<[f64; 8]>

impl Num for AutoSimd<[i128; 1]>

impl Num for AutoSimd<[i128; 2]>

impl Num for AutoSimd<[i128; 4]>

impl Num for AutoSimd<[i16; 2]>

impl Num for AutoSimd<[i16; 4]>

impl Num for AutoSimd<[i16; 8]>

impl Num for AutoSimd<[i16; 16]>

impl Num for AutoSimd<[i16; 32]>

impl Num for AutoSimd<[i32; 2]>

impl Num for AutoSimd<[i32; 4]>

impl Num for AutoSimd<[i32; 8]>

impl Num for AutoSimd<[i32; 16]>

impl Num for AutoSimd<[i64; 2]>

impl Num for AutoSimd<[i64; 4]>

impl Num for AutoSimd<[i64; 8]>

impl Num for AutoSimd<[i8; 2]>

impl Num for AutoSimd<[i8; 4]>

impl Num for AutoSimd<[i8; 8]>

impl Num for AutoSimd<[i8; 16]>

impl Num for AutoSimd<[i8; 32]>

impl Num for AutoSimd<[isize; 2]>

impl Num for AutoSimd<[isize; 4]>

impl Num for AutoSimd<[isize; 8]>

impl Num for AutoSimd<[u128; 1]>

impl Num for AutoSimd<[u128; 2]>

impl Num for AutoSimd<[u128; 4]>

impl Num for AutoSimd<[u16; 2]>

impl Num for AutoSimd<[u16; 4]>

impl Num for AutoSimd<[u16; 8]>

impl Num for AutoSimd<[u16; 16]>

impl Num for AutoSimd<[u16; 32]>

impl Num for AutoSimd<[u32; 2]>

impl Num for AutoSimd<[u32; 4]>

impl Num for AutoSimd<[u32; 8]>

impl Num for AutoSimd<[u32; 16]>

impl Num for AutoSimd<[u64; 2]>

impl Num for AutoSimd<[u64; 4]>

impl Num for AutoSimd<[u64; 8]>

impl Num for AutoSimd<[u8; 2]>

impl Num for AutoSimd<[u8; 4]>

impl Num for AutoSimd<[u8; 8]>

impl Num for AutoSimd<[u8; 16]>

impl Num for AutoSimd<[u8; 32]>

impl Num for AutoSimd<[usize; 2]>

impl Num for AutoSimd<[usize; 4]>

impl Num for AutoSimd<[usize; 8]>