Expand description
Control signal primitives.
The crate keeps control signal transformations explicit: construct, clamp, scale, or saturate a finite scalar value.
§Examples
use use_control_signal::{clamp_signal, saturate, ControlSignal};
let signal = ControlSignal::new(12.0).unwrap().clamp(0.0, 10.0).unwrap();
assert_eq!(signal.value(), 10.0);
assert_eq!(clamp_signal(2.5, 0.0, 2.0).unwrap(), 2.0);
assert_eq!(saturate(-5.0, 2.0).unwrap(), -2.0);