2 unstable releases

0.2.0 Aug 23, 2023
0.1.0 Jul 24, 2021

#2290 in Rust patterns

Download history 73/week @ 2023-12-18 22/week @ 2023-12-25 301/week @ 2024-01-01 322/week @ 2024-01-08 200/week @ 2024-01-15 190/week @ 2024-01-22 231/week @ 2024-01-29 228/week @ 2024-02-05 396/week @ 2024-02-12 291/week @ 2024-02-19 326/week @ 2024-02-26 301/week @ 2024-03-04 305/week @ 2024-03-11 246/week @ 2024-03-18 477/week @ 2024-03-25 502/week @ 2024-04-01

1,546 downloads per month

MIT license

7KB
167 lines

nonzero: Statically Checked Non-Zero Integers

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.

[ docs.rs | crates.io ]

Example

use nonzero::nonzero as nz;
use std::num::{NonZeroI32, NonZeroUsize};

let safe_seven: NonZeroUsize = nz!(7usize);
let negative_one: NonZeroI32 = nz!(-1i32);

License

MIT license. See license file.

Dependencies

~0.4–1MB
~21K SLoC