# Trait num_traits::cast::ToPrimitive

``````pub trait ToPrimitive {
Show 14 methods    fn to_i64(&self) -> Option<i64>;
fn to_u64(&self) -> Option<u64>;

fn to_isize(&self) -> Option<isize> { ... }
fn to_i8(&self) -> Option<i8> { ... }
fn to_i16(&self) -> Option<i16> { ... }
fn to_i32(&self) -> Option<i32> { ... }
fn to_i128(&self) -> Option<i128> { ... }
fn to_usize(&self) -> Option<usize> { ... }
fn to_u8(&self) -> Option<u8> { ... }
fn to_u16(&self) -> Option<u16> { ... }
fn to_u32(&self) -> Option<u32> { ... }
fn to_u128(&self) -> Option<u128> { ... }
fn to_f32(&self) -> Option<f32> { ... }
fn to_f64(&self) -> Option<f64> { ... }
}``````
Expand description

A generic trait for converting a value to a number.

A value can be represented by the target type when it lies within the range of scalars supported by the target type. For example, a negative integer cannot be represented by an unsigned integer type, and an `i64` with a very high magnitude might not be convertible to an `i32`. On the other hand, conversions with possible precision loss or truncation are admitted, like an `f32` with a decimal part to an integer type, or even a large `f64` saturating to `f32` infinity.

## Required Methods§

Converts the value of `self` to an `i64`. If the value cannot be represented by an `i64`, then `None` is returned.

Converts the value of `self` to a `u64`. If the value cannot be represented by a `u64`, then `None` is returned.

## Provided Methods§

Converts the value of `self` to an `isize`. If the value cannot be represented by an `isize`, then `None` is returned.

Converts the value of `self` to an `i8`. If the value cannot be represented by an `i8`, then `None` is returned.

Converts the value of `self` to an `i16`. If the value cannot be represented by an `i16`, then `None` is returned.

Converts the value of `self` to an `i32`. If the value cannot be represented by an `i32`, then `None` is returned.

Converts the value of `self` to an `i128`. If the value cannot be represented by an `i128` (`i64` under the default implementation), then `None` is returned.

This method is only available with feature `i128` enabled on Rust >= 1.26.

The default implementation converts through `to_i64()`. Types implementing this trait should override this method if they can represent a greater range.

Converts the value of `self` to a `usize`. If the value cannot be represented by a `usize`, then `None` is returned.

Converts the value of `self` to a `u8`. If the value cannot be represented by a `u8`, then `None` is returned.

Converts the value of `self` to a `u16`. If the value cannot be represented by a `u16`, then `None` is returned.

Converts the value of `self` to a `u32`. If the value cannot be represented by a `u32`, then `None` is returned.

Converts the value of `self` to a `u128`. If the value cannot be represented by a `u128` (`u64` under the default implementation), then `None` is returned.

This method is only available with feature `i128` enabled on Rust >= 1.26.

The default implementation converts through `to_u64()`. Types implementing this trait should override this method if they can represent a greater range.

Converts the value of `self` to an `f32`. Overflows may map to positive or negative inifinity, otherwise `None` is returned if the value cannot be represented by an `f32`.

Converts the value of `self` to an `f64`. Overflows may map to positive or negative inifinity, otherwise `None` is returned if the value cannot be represented by an `f64`.

The default implementation tries to convert through `to_i64()`, and failing that through `to_u64()`. Types implementing this trait should override this method if they can represent a greater range.