pub trait Num: PartialEq<Self> + Zero + One + NumOps<Self, Self> {
    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

Parses a +/- bi; ai +/- b; a; or bi where a and b are of type T

radix must be <= 18; larger radix would include i and j as digits, which cannot be supported.

The conversion returns an error if 18 <= radix <= 36; it panics if radix > 36.

The elements of T are parsed using Num::from_str_radix too, and errors (or panics) from that are reflected here as well.

Parses numer/denom where the numbers are in base radix.

Implementors