19 个版本
0.4.1 | 2024年7月16日 |
---|---|
0.4.0-beta.2 | 2024年5月5日 |
0.3.3 | 2024年3月8日 |
0.3.2 | 2023年10月16日 |
0.2.2 | 2023年7月31日 |
1240 在 Rust 模式 中
每月下载量 249
14KB
nz
目录
描述
该 nz
crate 提供了一组宏,用于简化创建 NonZero
类型。使用这些宏,您可以在编译时轻松生成泛型类型的常量。
变更日志
nz
crate 的所有更改均在 CHANGELOG.md 中记录。
功能
- 无不安全代码
- 无依赖项
no_std
兼容- 支持所有实现
ZeroablePrimitive
的类型 - 编译时评估
宏
用法
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());
许可
本库根据您选择的以下任一许可证进行分发