truncate-integer 0.5.0

Truncate integers
Documentation
use truncate_integer::{Chop, TryTruncate, TryTruncateFrom, Shrink, TruncateUnchecked};

#[test]
#[should_panic]
fn test_chop_panic() {
    let _x: u8 = 257u16.chop();
}

#[test]
fn test_chop() {
    let x: u8 = 0u16.chop();
    assert_eq!(x, 0u8);
    let x: u8 = 0u32.chop();
    assert_eq!(x, 0u8);
    let x: u8 = 0u64.chop();
    assert_eq!(x, 0u8);
    let x: u8 = 0u128.chop();
    assert_eq!(x, 0u8);

    let x: i8 = 0i16.chop();
    assert_eq!(x, 0i8);
    let x: i8 = 0i32.chop();
    assert_eq!(x, 0i8);
    let x: i8 = 0i64.chop();
    assert_eq!(x, 0i8);
    let x: i8 = 0i128.chop();
    assert_eq!(x, 0i8);

    let x: u8 = 0i16.chop();
    assert_eq!(x, 0u8);
    let x: u8 = 0i32.chop();
    assert_eq!(x, 0u8);
    let x: u8 = 0i64.chop();
    assert_eq!(x, 0u8);
    let x: u8 = 0i128.chop();
    assert_eq!(x, 0u8);

    let x: i8 = 0u16.chop();
    assert_eq!(x, 0i8);
    let x: i8 = 0u32.chop();
    assert_eq!(x, 0i8);
    let x: i8 = 0u64.chop();
    assert_eq!(x, 0i8);
    let x: i8 = 0u128.chop();
    assert_eq!(x, 0i8);
}

#[test]
fn test_try_truncate() {
    let x: Option<u8> = 257u16.try_truncate();
    assert!(x.is_none());
    let x: Option<u8> = (-1i16).try_truncate();
    assert!(x.is_none());

    let x = u8::try_truncate_from(257u16);
    assert!(x.is_none());
}

#[test]
fn test_shrink() {
    let x: u8 = 257u16.shrink();
    assert_eq!(x, 255u8);
    let x: u8 = (-1i16).shrink();
    assert_eq!(x, 0u8);
}

#[test]
fn test_truncate_unchecked() {
    let x: u8 = 257u16.truncate_unchecked();
    assert_eq!(x, 1u8);
}