#non-zero #const #no-std

无 std nz

100% 安全的宏集合,用于更轻松地创建非零整数

19 个版本

0.4.1 2024年7月16日
0.4.0-beta.22024年5月5日
0.3.3 2024年3月8日
0.3.2 2023年10月16日
0.2.2 2023年7月31日

1240Rust 模式

Download history 3/week @ 2024-04-20 324/week @ 2024-04-27 180/week @ 2024-05-04 7/week @ 2024-05-11 24/week @ 2024-05-18 2/week @ 2024-05-25 15/week @ 2024-06-08 4/week @ 2024-06-15 14/week @ 2024-07-06 187/week @ 2024-07-13 34/week @ 2024-07-20 14/week @ 2024-07-27

每月下载量 249

Zlib OR Apache-2.0 OR MIT

14KB

nz

github crates.io docs.rs rust-ci msrv unsafety license

目录

描述

nz crate 提供了一组宏,用于简化创建 NonZero 类型。使用这些宏,您可以在编译时轻松生成泛型类型的常量。

变更日志

nz crate 的所有更改均在 CHANGELOG.md 中记录。

功能

  • 无不安全代码
  • 无依赖项
  • no_std 兼容
  • 支持所有实现 ZeroablePrimitive 的类型
  • 编译时评估

类型
NonZero<i8> nz::i8!
NonZero<i16> nz::i16!
NonZero<i32> nz::i32!
NonZero<i64> nz::i64!
NonZero<i128> nz::i128!
NonZero<isize> nz::isize!
NonZero<u8> nz::u8!
NonZero<u16> nz::u16!
NonZero<u32> nz::u32!
NonZero<u64> nz::u64!
NonZero<u128> nz::u128!
NonZero<usize> nz::usize!

用法

use std::num::NonZero;

// A `NonZero<T>` type can be constructed from different types of
// arguments with the matching `nz` macro.
// Such argument can be an integer literal,
const NZ_MIN: NonZero<u8> = nz::u8!(1);
let nz_two = nz::u8!(2);
// a constant value,
const NZ_MAX: NonZero<u8> = nz::u8!(u8::MAX);
const SIX: u8 = 6;
let six = nz::u8!(SIX);
// or even a constant expression.
const RES: NonZero<u8> = nz::u8!({ 3 + 7 } - NZ_MIN.get());
let res = nz::u8!((NZ_MIN.get() & NZ_MAX.get()) + 7);
let five = nz::u8!({ const FIVE: u8 = 5; FIVE });
// However, a non-constant expression results in a compile-time error.
// const __ERR: NonZero<u8> = nz::u8!({ 3 + 7 } - nz_two.get());

许可

本库根据您选择的以下任一许可证进行分发

无运行时依赖