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
, i32
, i64
into isize
u64
, u128
, i128
from usize
i64
, i128
from isize
On 32 bits platform it allows:
u16
, u32
into usize
i16
, 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
toml
[dependencies]
usize_cast = "1.0.0"
```rust use usize_cast::{IntoUsize, FromUsize, IntoIsize, FromIsize};
asserteq!(1u64.intousize(), 1usize); asserteq!(2i64.intoisize(), 2isize); asserteq!(3i64.intoisize(), 3isize); asserteq!(1u32.intousize(), 1usize); asserteq!(2i32.intoisize(), 2isize); asserteq!(3i32.intoisize(), 3isize); asserteq!(u64::maxvalue().intousize(), usize::maxvalue()); asserteq!(i64::maxvalue().intoisize(), isize::maxvalue()); asserteq!(i64::minvalue().intoisize(), isize::minvalue());
asserteq!(1u64, u64::fromusize(1usize)); asserteq!(2i64, i64::fromisize(2isize)); asserteq!(3i64, i64::fromisize(3isize)); asserteq!(1u128, u128::fromusize(1usize)); asserteq!(2i128, i128::fromisize(2isize)); asserteq!(3i128, i128::fromisize(3isize)); asserteq!(u64::maxvalue(), u64::fromusize(usize::maxvalue())); asserteq!(i64::maxvalue(), i64::fromisize(isize::maxvalue())); asserteq!(i64::minvalue(), i64::fromisize(isize::minvalue())); ```