temp-converter 2.0.9

Simple terminal temperature unit converter between Celsius, Fahrenheit and Kelvin.
Documentation
use crate::{cli::Unit, validation::Value};
use temp_converter::TemperatureConversion;

pub fn transform_value(val: Value, from: Unit, to: Unit) -> Value {
    match from {
        Unit::Kelvin => match to {
            Unit::Kelvin => val,
            Unit::Celsius => match val {
                Value::F32(num) => num.kelvin_to_celsius().into(),
                Value::F64(num) => num.kelvin_to_celsius().into(),
            },
            Unit::Fahrenheit => match val {
                Value::F32(num) => num.kelvin_to_fahrenheit().into(),
                Value::F64(num) => num.kelvin_to_fahrenheit().into(),
            },
        },
        Unit::Celsius => match to {
            Unit::Celsius => val,
            Unit::Kelvin => match val {
                Value::F32(num) => num.celsius_to_kelvin().into(),
                Value::F64(num) => num.celsius_to_kelvin().into(),
            },
            Unit::Fahrenheit => match val {
                Value::F32(num) => num.celsius_to_fahrenheit().into(),
                Value::F64(num) => num.celsius_to_kelvin().into(),
            },
        },
        Unit::Fahrenheit => match to {
            Unit::Fahrenheit => val,
            Unit::Kelvin => match val {
                Value::F32(num) => num.fahrenheit_to_kelvin().into(),
                Value::F64(num) => num.fahrenheit_to_kelvin().into(),
            },
            Unit::Celsius => match val {
                Value::F32(num) => num.fahrenheit_to_celsius().into(),
                Value::F64(num) => num.fahrenheit_to_celsius().into(),
            },
        },
    }
}