8 个版本
0.5.5 | 2023 年 11 月 19 日 |
---|---|
0.5.4 | 2023 年 11 月 9 日 |
0.5.3 | 2022 年 7 月 2 日 |
0.5.1 | 2022 年 6 月 30 日 |
0.2.0 | 2020 年 9 月 28 日 |
在 Rust 模式 中排名 116
每月下载 92,991 次
用于 866 个 软件包(直接使用 26 个)
24KB
393 行
nonmax
nonmax 提供与 std 库中的 NonZero*
类型类似的数据类型,但要求它们的值不是它们类型的最大值。这确保了 Option<NonMax*>
的大小不会超过 NonMax*
。
nonmax 支持标准库中具有相应非零变体的所有类型
NonMaxI8
NonMaxI16
NonMaxI32
NonMaxI64
NonMaxI128
NonMaxIsize
NonMaxU8
NonMaxU16
NonMaxU32
NonMaxU64
NonMaxU128
NonMaxUsize
示例
use nonmax::{NonMaxI16, NonMaxU8};
let value = NonMaxU8::new(16).expect("16 should definitely fit in a u8");
assert_eq!(value.get(), 16);
assert_eq!(std::mem::size_of_val(&value), 1);
let signed = NonMaxI16::new(i16::min_value()).expect("minimum values are fine");
assert_eq!(signed.get(), i16::min_value());
assert_eq!(std::mem::size_of_val(&signed), 2);
let oops = NonMaxU8::new(255);
assert_eq!(oops, None);
特性
-
std
(默认):为ParseIntError
和TryFromIntError
实现std::error::Error
。为了支持#![no_std]
,请禁用此功能。 -
serde
:实现了来自serde
的Serialize
和Deserialize
特性。
最小支持的 Rust 版本 (MSRV)
nonmax 支持 Rust 1.47.0 及更高版本。在此库达到 1.0 之前,MSRV 的更改需要主要版本号的增加。在 1.0 之后,MSRV 的更改只需要次要版本号的增加,但需要充分的理由。
许可证
许可协议为以下之一:
- Apache License, Version 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
您可选择其中之一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在作品中的任何贡献,将按上述方式双许可,不附加任何额外条款或条件。
依赖项
~165KB