Macro nonzero_lit::usize [−][src]
macro_rules! usize { ($val:expr $(,)?) => { ... }; }
Create a literal NonZeroUsize
.
Examples
Basic usage
let x = nonzero_lit::usize!(4); assert_eq!(x.get(), 4);
Works for consts, and the parameter can be any const expression (not just a literal).
const A: usize = 5; const B: core::num::NonZeroUsize = nonzero_lit::usize!(A * 10); assert_eq!(B.get(), 50);
Misuse is detected at compile time.
ⓘ
const ZERO: core::num::NonZeroUsize = nonzero_lit::usize!(0);
Macro is robust in the face of #[allow(...)]
.
ⓘ
#[allow(const_err)] const ZERO: core::num::NonZeroUsize = nonzero_lit::usize!(0);
ⓘ
let zero = nonzero_lit::usize!(usize::MAX.wrapping_add(1));
Note: argument must be a constant expression.
ⓘ
let bar = 3; let foo = nonzero_lit::usize!(bar);