3个稳定版本
1.1.0 | 2024年6月28日 |
---|---|
1.0.1 | 2023年11月9日 |
1.0.0 | 2023年11月8日 |
在 Rust模式 中排名第 973
每月下载量 145
13KB
209 代码行
提供用于从整数常量构造 std::num::NonZero*
的宏 nz
。
nz
宏可以从推断的 NonZero*
返回类型中推断出参数的类型,而一些替代宏始终要求指定参数的类型。
示例
用法
use notzero::nz;
use std::num::NonZeroU64;
let two = nz!(2u16); // returns a `NonZeroU16`
assert_eq!(two.get(), 2u16);
// infers the argument's type from the returned `NonZero`
const THREE: NonZeroU64 = nz!(3);
assert_eq!(THREE.get(), 3u64);
const FOUR: i8 = -4;
let fourz = nz!(FOUR); // returns a `NonZeroI8`
assert_eq!(fourz.get(), -4i8);
无参数
const ZERO: u8 = 0;
let _ = notzero::nz!(ZERO);
上述代码会产生编译时错误
error[E0080]: evaluation of `main::_doctest_main_src_lib_rs_27_0::{constant#0}` failed
--> src/lib.rs:32:9
|
8 | let _ = notzero::nz!(ZERO);
| ^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'passed in a `0` argument', src/lib.rs:8:9
|
= note: this error originates in the macro `notzero::nz` (in Nightly builds, run with -Z macro-backtrace more info)
无std支持
notzero
是 #![no_std]
,可以在Rust可以使用的任何地方使用。
最低支持的Rust版本
此crate需要Rust 1.79.0,因为它使用 const { ... }
表达式(也称为“内联const”)。
依赖项
~290KB