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

no-std checked_clamp

Clamp alternative that returns a result instead of panicking

1 unstable release

0.1.0 Sep 14, 2023

#2262 in Rust patterns

MIT/Apache

9KB
79 lines

Latest version pipeline status Documentation unsafe forbidden License

Checked clamp

checked_clamp provides a method that tries to clamp any type implementing PartialOrd between a minimum and a maximum value, returning an error if the value or the limits are invalid.

Example

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"));

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as below, without any additional terms or conditions.

License

Licensed under either of

at your option.

No runtime deps

Features