#clamp #bounds #arithmetic #saturated

no-std clamped

简单的 Rust 中数字的固定值操作

1 个稳定版本

1.0.0 2019年6月11日

数学 中排名第 1608

Download history 43/week @ 2024-04-07 54/week @ 2024-04-14 57/week @ 2024-04-21 48/week @ 2024-04-28 42/week @ 2024-05-05 48/week @ 2024-05-12 57/week @ 2024-05-19 42/week @ 2024-05-26 42/week @ 2024-06-02 29/week @ 2024-06-09 46/week @ 2024-06-16 50/week @ 2024-06-23 11/week @ 2024-06-30 29/week @ 2024-07-07 56/week @ 2024-07-14 34/week @ 2024-07-21

每月下载量 132
16 个 Crates 中使用(直接使用 3 个)

MIT 许可证

9KB
164

Clamped

Build Status Crates.io

简单的 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` 兼容,但 这可能在将来发生变化!!!

无运行时依赖

特性