Crates.io | usize_cast |
lib.rs | usize_cast |
version | 1.1.0 |
source | src |
created_at | 2020-03-26 14:20:18.437579 |
updated_at | 2020-03-29 16:02:03.544685 |
description | Compile time checked cast from and to `usize`/`isize` |
homepage | |
repository | https://github.com/Clikengo/usize_cast |
max_upload_size | |
id | 223110 |
size | 10,848 |
Very simply library that allow compile time checked cast from and to usize
/isize
.
On 64 bits platform it allows:
u16
, u32
, u64
into usize
i16
, u16
, i32
, u32
, i64
into isize
u64
, u128
, i128
from usize
i64
, i128
from isize
On 32 bits platform it allows:
u16
, u32
into usize
i16
, u16
, i32
into isize
u32
, u64
, i64
, u128
, i128
from usize
i32
, i64
, i128
from isize
On 16 bits platform it allows:
u16
into usize
i16
into isize
u16
, u32
, i32
, u64
, i64
, u128
, i128
from usize
i16
, i32
, i64
, i128
from isize
[dependencies]
usize_cast = "1.0.0"
use usize_cast::{IntoUsize, FromUsize, IntoIsize, FromIsize};
assert_eq!(1u64.into_usize(), 1usize);
assert_eq!(2i64.into_isize(), 2isize);
assert_eq!(3i64.into_isize(), 3isize);
assert_eq!(1u32.into_usize(), 1usize);
assert_eq!(1u32.into_isize(), 1isize);
assert_eq!(2i32.into_isize(), 2isize);
assert_eq!(3i32.into_isize(), 3isize);
assert_eq!(u64::max_value().into_usize(), usize::max_value());
assert_eq!(i64::max_value().into_isize(), isize::max_value());
assert_eq!(i64::min_value().into_isize(), isize::min_value());
assert_eq!(1u64, u64::from_usize(1usize));
assert_eq!(2i64, i64::from_isize(2isize));
assert_eq!(3i64, i64::from_isize(3isize));
assert_eq!(1u128, u128::from_usize(1usize));
assert_eq!(2i128, i128::from_isize(2isize));
assert_eq!(3i128, i128::from_isize(3isize));
assert_eq!(u64::max_value(), u64::from_usize(usize::max_value()));
assert_eq!(i64::max_value(), i64::from_isize(isize::max_value()));
assert_eq!(i64::min_value(), i64::from_isize(isize::min_value()));