[−][src]Trait core_extensions::integer_extensions::IntegerExt
Extension trait for integers.
Associated Types
type Unsigned: IntegerExt
The unsigned version of this integer type.
Required methods
fn from_u8(n: u8) -> Self
Converts from a u8.
if Self==i8 it saturates at 0..=127 .
Example
use core_extensions::IntegerExt; assert_eq!(u8::from_u8(0),0); assert_eq!(u8::from_u8(255),255); assert_eq!(i8::from_u8(0),0); assert_eq!(i8::from_u8(255),127); assert_eq!(u16::from_u8(0),0); assert_eq!(u16::from_u8(255),255); assert_eq!(i16::from_u8(0),0); assert_eq!(i16::from_u8(255),255); assert_eq!(u32::from_u8(0),0); assert_eq!(u32::from_u8(255),255); assert_eq!(i32::from_u8(0),0); assert_eq!(i32::from_u8(255),255);
fn from_i8(n: i8) -> Self
Converts from a i8.
if n < 0 and Self is Unsigned it returns 0.
Example
use core_extensions::IntegerExt; assert_eq!(u8::from_i8(-128),0); assert_eq!(u8::from_i8(0 ),0); assert_eq!(u8::from_i8(1 ),1); assert_eq!(u8::from_i8(127 ),127); assert_eq!(i8::from_i8(-128),-128); assert_eq!(i8::from_i8(0 ),0 ); assert_eq!(i8::from_i8(127 ),127 ); assert_eq!(u16::from_i8(-128),0); assert_eq!(u16::from_i8(0 ),0); assert_eq!(u16::from_i8(1 ),1); assert_eq!(u16::from_i8(127 ),127); assert_eq!(i16::from_i8(-128),-128); assert_eq!(i16::from_i8(0 ),0 ); assert_eq!(i16::from_i8(127 ),127 ); assert_eq!(u32::from_i8(-128),0); assert_eq!(u32::from_i8(0 ),0); assert_eq!(u32::from_i8(1 ),1); assert_eq!(u32::from_i8(127 ),127); assert_eq!(i32::from_i8(-128),-128); assert_eq!(i32::from_i8(0 ),0 ); assert_eq!(i32::from_i8(127 ),127 );
fn power(self, n: u32) -> Self
fn abs_unsigned(self) -> Self::Unsigned
Like the Self::abs function except that the return type is Self::Unsigned
.
Example
use core_extensions::integer_extensions::{IntegerExt,Sign}; assert_eq!(0u8.abs_unsigned(),0); assert_eq!(0i8.abs_unsigned(),0); assert_eq!(127i8.abs_unsigned(),127); assert_eq!((-1i8).abs_unsigned(),1); assert_eq!((-16i8).abs_unsigned(),16); assert_eq!((-128i8).abs_unsigned(),128);
fn number_of_digits(self) -> u32
Returns the number of decimal digits of self
.
Negative numbers add 1 digit because of '-'.
Example
use core_extensions::integer_extensions::{IntegerExt,Sign}; assert_eq!(100.number_of_digits(),3); assert_eq!(10.number_of_digits(),2); assert_eq!(1.number_of_digits(),1); assert_eq!(0.number_of_digits(),1); assert_eq!((-1).number_of_digits(),2); assert_eq!((-100).number_of_digits(),4);
Provided methods
fn get_sign(self) -> Sign
Gets the sign of self
which is either Positive
or Negative
.
Example
use core_extensions::integer_extensions::{IntegerExt,Sign}; assert_eq!(0u8.get_sign(),Sign::Positive); assert_eq!(0i8.get_sign(),Sign::Positive); assert_eq!(127i8.get_sign(),Sign::Positive); assert_eq!((-1i8).get_sign(),Sign::Negative); assert_eq!((-128i8).get_sign(),Sign::Negative);
fn div_safe(self, other: Self) -> Self
Non-panicking division which returns self if other==0.
use core_extensions::integer_extensions::{IntegerExt,Sign}; assert_eq!(60.div_safe(12),5); assert_eq!(60.div_safe(30),2); assert_eq!(60.div_safe(31),1); assert_eq!(60.div_safe(0) ,60); assert_eq!(13.div_safe(0) ,13);