1 个稳定版本
1.0.0 | 2019年6月11日 |
---|
在 数学 中排名第 1608
每月下载量 132
在 16 个 Crates 中使用(直接使用 3 个)
9KB
164 行
Clamped
简单的 Rust 中数字的固定值操作
用法
clamped
严重依赖于 Cargo 的特性系统进行条件编译。您需要通过特性启用 clamped
中所需的所有元素。您可以独立启用每个特性(它们不会相互冲突)。
当前特性包括
clamp_trait
:`Clamp` 特性和相应的 `clamped` 成员函数
use clamped::Clamp;
// Clamp numbers between 20 and 30
assert_eq!(10.clamped(20, 30), 20); // 10 -> 20
assert_eq!(15.clamped(20, 30), 20); // 15 -> 20
assert_eq!(20.clamped(20, 30), 20); // 20 -> 20
assert_eq!(25.clamped(20, 30), 25); // 25 -> 25
assert_eq!(30.clamped(20, 30), 30); // 30 -> 30
assert_eq!(35.clamped(20, 30), 30); // 35 -> 30
-
clamp_fn
:`clamp` 函数,与 `Clamp` + `clamped` 方法相同,但不使用特质方法 -
clamp_macro
:一个 `clamp!` 宏,包含所有固定值函数的签名。如果您不想包含任何特质、函数或其他外部代码,可以使用此功能。 -
inline_always
:此特性修改了 crate 中所有函数的签名,启用 `inline![always]` 属性。这将强制编译器内联所有调用,本质上允许函数和特质方法像宏一样工作,同时进行类型检查。
注意:默认情况下仅启用 `clamp_trait` 特性(随着更多特性的添加,这可能会在未来发生变化)
所有特性目前都与 `no_std` 兼容,但 这可能在将来发生变化!!!