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
fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr>
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.