#non-zero #literals #const #int #compile-time

no-std nonzero_lit

Easy, safe, and fully zero-cost NonZero constants and literals

3 releases

0.1.2 May 3, 2021
0.1.1 May 3, 2021
0.1.0 May 2, 2021

#1571 in Rust patterns

Download history 364/week @ 2024-11-14 356/week @ 2024-11-21 415/week @ 2024-11-28 467/week @ 2024-12-05 477/week @ 2024-12-12 371/week @ 2024-12-19 380/week @ 2024-12-26 461/week @ 2025-01-02 725/week @ 2025-01-09 719/week @ 2025-01-16 611/week @ 2025-01-23 889/week @ 2025-01-30 923/week @ 2025-02-06 1120/week @ 2025-02-13 895/week @ 2025-02-20 710/week @ 2025-02-27

3,828 downloads per month

MIT OR Apache-2.0 OR CC0-1.0

26KB
167 lines

nonzero_lit

Build Status Docs Latest Version Minimum Rust Version

A small macro crate providing safe, easy, and fully zero-cost way to construct constant or literal instances of the NonZero* types from core::num.

Features

Usage

Add this to your Cargo.toml:

[dependencies]
nonzero_lit = "0.1"

Examples

let x = nonzero_lit::i32!(4);
assert_eq!(x.get(), 4);
const FERRIS: core::num::NonZeroU32 = nonzero_lit::u32!(0xf34415);
assert_eq!(FERRIS.get(), 0xf34415);
const FERRIS: core::num::NonZeroU32 = nonzero_lit::u32!(0xf34415);
assert_eq!(FERRIS.get(), 0xf34415);

License

Public domain, as explained here. If that's unacceptable, it's also available under either the Apache-2.0 or MIT licenses, at your option.

No runtime deps