# arch-into This crate provides simplified conversions between `usize`/`isize` types, and types with constant size, depending on supported architectures. Typically, when you want to convert `usize` to `u64` (or `u32`) you have few options: - Use `as` keyword. This approach may lead to incorrect results - Use `try_from` with `unwrap`/`expect`. When you target only 64-bits architectures this is fine, but it produces a lot of boilerplate - Use `try_from` and return error. This approach hides misbehavior of your code. This crates provides two features: `no-arch-32` and `no-arch-64`. If you try to compile for unsupported architecture, compilation will fail with the error. Since unsupported pointer width is defined, we can use safe conversions for types with specific size. ## Usage ```rust use arch_into::{ArchInto, ArchFrom}; fn main() { let a: u64 = 23; let b: usize = a.arch_into(); let _c = u64::arch_from(b); } ```