pub fn scale_value<T>(value: &T, src: &(T, T), dst: &(T, T)) -> Result<T>where T: Copy + PartialOrd + Add<Output = T> + Sub<Output = T> + Mul<Output = T> + Div<Output = T> + From<f32>,
scale value in src range to dst range
src
dst