The crate provides the nonzero!
macro that converts an integer to NonZero{Usize,Isize,...}
types. The conversion is done statically without extra runtime cost, and rejects zeros in compile-time.
use nonzero::nonzero as nz;
use std::num::{NonZeroI32, NonZeroUsize};
let safe_seven: NonZeroUsize = nz!(7usize);
let negative_one: NonZeroI32 = nz!(-1i32);
MIT license. See license file.