1 unstable release
0.1.0 | Sep 14, 2023 |
---|
#2625 in Rust patterns
9KB
79 lines
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
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.