pub struct Clip {
pub maximum: f64,
pub minimum: f64,
pub value: f64,
}
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 Freeze for Clip
impl RefUnwindSafe for Clip
impl Send for Clip
impl Sync for Clip
impl Unpin for Clip
impl UnwindSafe for Clip
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more