Expand description
Clips the value to a minimum and maximum range
Alternative
https://doc.rust-lang.org/std/primitive.f64.html#method.clamp
Examples
use com_croftsoft_core::math::math_lib::*;
assert_eq!(
Clip {
maximum: 1.0,
minimum: -1.0,
value: 0.0,
}.calculate().unwrap(),
0.0);
assert_eq!(
Clip {
maximum: 1.0,
minimum: -1.0,
value: -2.0,
}.calculate().unwrap(),
-1.0);
assert_eq!(
Clip {
maximum: 1.0,
minimum: -1.0,
value: 2.0,
}.calculate().unwrap(),
1.0);
assert_eq!(
Clip {
maximum: f64::NAN,
minimum: -1.0,
value: 0.0,
}.calculate().unwrap_err(),
ClipError::MaximumIsNotANumber);
assert_eq!(
Clip {
maximum: f64::INFINITY,
minimum: -1.0,
value: 0.0,
}.calculate().unwrap_err(),
ClipError::MaximumIsInfinite(f64::INFINITY));
assert_eq!(
Clip {
maximum: f64::NEG_INFINITY,
minimum: -1.0,
value: 0.0,
}.calculate().unwrap_err(),
ClipError::MaximumIsInfinite(f64::NEG_INFINITY));
assert_eq!(
Clip {
maximum: -1.0,
minimum: 1.0,
value: 0.0,
}.calculate().unwrap_err(),
ClipError::MinimumIsGreaterThanMaximum);
assert_eq!(
Clip {
maximum: 1.0,
minimum: f64::INFINITY,
value: 0.0,
}.calculate().unwrap_err(),
ClipError::MinimumIsInfinite(f64::INFINITY));
assert_eq!(
Clip {
maximum: 1.0,
minimum: f64::NEG_INFINITY,
value: 0.0,
}.calculate().unwrap_err(),
ClipError::MinimumIsInfinite(f64::NEG_INFINITY));
assert_eq!(
Clip {
maximum: 1.0,
minimum: f64::NAN,
value: 0.0,
}.calculate().unwrap_err(),
ClipError::MinimumIsNotANumber);
assert_eq!(
Clip {
maximum: 1.0,
minimum: -1.0,
value: f64::INFINITY,
}.calculate().unwrap_err(),
ClipError::ValueIsInfinite(f64::INFINITY));
assert_eq!(
Clip {
maximum: 1.0,
minimum: -1.0,
value: f64::NEG_INFINITY,
}.calculate().unwrap_err(),
ClipError::ValueIsInfinite(f64::NEG_INFINITY));
assert_eq!(
Clip {
maximum: 1.0,
minimum: -1.0,
value: f64::NAN,
}.calculate().unwrap_err(),
ClipError::ValueIsNotANumber);
Fields
maximum: f64
minimum: f64
value: f64
Implementations
Trait Implementations
impl StructuralPartialEq for Clip
Auto Trait Implementations
impl RefUnwindSafe for Clip
impl Send for Clip
impl Sync for Clip
impl Unpin for Clip
impl UnwindSafe for Clip
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more