Compile-time checked non-zero integers with type inference and first-class `const` support. ```rust const UNSIGNED: NonZeroUsize = nonzero!(1); const SIGNED: NonZeroI8 = nonzero!(-1); // ^ correctly infers return type const MY_CONST: usize = 20; const MY_NONZERO_CONST: NonZeroUsize = nonzero!(MY_CONST - 19); // refer to other constant values ^ ``` ```rust let runtime = nonzero!(0); // eager evaluation ``` # Comparison with other libraries - [`nonzero`](https://docs.rs/nonzero/latest/nonzero/) uses a proc-macro that parses the expression passed to it, precluding - Type inference. - Referencing constants.