#clamp #checked #no-panic #no-alloc #error-value

no-std checked_clamp

返回结果而不是恐慌的 Clamp 替代方案

1 个不稳定版本

0.1.0 2023 年 9 月 14 日

#2429 in Rust 模式

MIT/Apache 协议

9KB
79

Latest version pipeline status Documentation unsafe forbidden License

CheckedClamp

checked_clamp 提供了一种方法,尝试将实现了 PartialOrd 的任何类型限制在最小值和最大值之间,如果值或限制无效,则返回错误。

示例

use checked_clamp::{CheckedClamp, CheckedClampError as E};

assert_eq!(10.0.checked_clamp(0.0, 1.0), Ok(1.0));
assert_eq!(10.0.checked_clamp(1.0, 0.0), Err(E::MinGreaterThanMax));
assert_eq!(f32::NAN.checked_clamp(0.0, 10.0), Err(E::ComparisonFailed));
assert_eq!(0.0.checked_clamp(f32::NAN, 10.0), Err(E::ComparisonFailed));
assert_eq!("ABCD".checked_clamp("AAA", "ZZZ"), Ok("ABCD"));

贡献

除非你明确声明,否则根据 Apache-2.0 许可证定义,你提交的任何有意包含在作品中的贡献,将以下双许可,不附加任何额外条款或条件。

许可证

许可协议为以下之一

任选其一。

无运行时依赖

功能