#integer #bounded #macro #refinement

no-std bounded-integer

有界整数

16 个版本

0.5.7 2023 年 6 月 15 日
0.5.6 2023 年 3 月 18 日
0.5.5 2023 年 2 月 14 日
0.5.3 2022 年 9 月 14 日
0.1.1 2016 年 6 月 5 日

#111Rust 模式

Download history 1310/week @ 2024-03-14 1839/week @ 2024-03-21 1557/week @ 2024-03-28 1545/week @ 2024-04-04 1972/week @ 2024-04-11 1573/week @ 2024-04-18 2656/week @ 2024-04-25 1895/week @ 2024-05-02 1642/week @ 2024-05-09 2604/week @ 2024-05-16 1619/week @ 2024-05-23 2152/week @ 2024-05-30 1692/week @ 2024-06-06 1670/week @ 2024-06-13 1882/week @ 2024-06-20 1999/week @ 2024-06-27

7,728 每月下载量
用于 41 个包 (直接使用 18 个)

ISC 许可证

91KB
1.5K SLoC

有界整数

Crate version docs.rs checks

此包提供了两种有界整数类型,用于在 Rust 中使用。

宏生成的有界整数

bounded_integer! 宏允许你定义自己的有界整数类型,给定它所占据的特定范围。例如

bounded_integer! {
    struct MyInteger { 0..8 }
}
let num = MyInteger::new(5).unwrap();
assert_eq!(num, 5);

此宏支持 structenum。请参阅 examples 模块以了解生成的类型的文档。

基于 const generics 的有界整数

你也可以通过使用此库中基于 const generics 的类型创建临时有界整数,例如

let num = <BoundedU8<0, 7>>::new(5).unwrap();
assert_eq!(num, 5);

这些整数使用起来更简洁,因为它们不需要类型声明或显式名称,并且与其他具有不同范围的整数交互更好。然而,由于 const generics 的限制,它们不实现一些特性,如 Default

no_std

此包中的所有整数仅依赖于 libcore,因此可以在 #![no_std] 环境中运行。

包功能

默认情况下,没有启用包功能。

许可协议

版权所有 © 2016,Curtis McEnroe [email protected]

在此特此授予使用、复制、修改和/或以任何目的免费或收费分发此软件的许可,前提是上述版权声明和本许可声明出现在所有副本中。

本软件按“原样”提供,作者对与该软件相关的所有保证,包括所有暗示的适销性和适用性保证,予以放弃。在任何情况下,作者均不对任何特殊、直接、间接或后果性损害或任何因使用、数据或利润损失引起的任何损害负责,无论是基于合同、疏忽或其他侵权行为,无论损害是否源于或与使用或性能该软件有关。

依赖项

~0–530KB