use bacnet_types::enums::EngineeringUnits as U;
use crate::tui::app::objects::kebab;
const SYMBOLS: [(U, &str); 44] = [
(U::DEGREES_FAHRENHEIT, "°F"),
(U::DEGREES_CELSIUS, "°C"),
(U::DEGREES_KELVIN, "K"),
(U::PERCENT, "%"),
(U::PERCENT_RELATIVE_HUMIDITY, "%RH"),
(U::PARTS_PER_MILLION, "ppm"),
(U::PASCALS, "Pa"),
(U::KILOPASCALS, "kPa"),
(U::BARS, "bar"),
(U::POUNDS_FORCE_PER_SQUARE_INCH, "psi"),
(U::INCHES_OF_WATER, "inH2O"),
(U::WATTS, "W"),
(U::KILOWATTS, "kW"),
(U::MEGAWATTS, "MW"),
(U::WATT_HOURS, "Wh"),
(U::KILOWATT_HOURS, "kWh"),
(U::MEGAWATT_HOURS, "MWh"),
(U::VOLT_AMPERES, "VA"),
(U::KILOVOLT_AMPERES, "kVA"),
(U::VOLTS, "V"),
(U::MILLIVOLTS, "mV"),
(U::KILOVOLTS, "kV"),
(U::AMPERES, "A"),
(U::MILLIAMPERES, "mA"),
(U::HERTZ, "Hz"),
(U::KILOHERTZ, "kHz"),
(U::REVOLUTIONS_PER_MINUTE, "rpm"),
(U::MILLISECONDS, "ms"),
(U::SECONDS, "s"),
(U::MINUTES, "min"),
(U::HOURS, "h"),
(U::DAYS, "d"),
(U::LITERS_PER_SECOND, "L/s"),
(U::LITERS_PER_MINUTE, "L/min"),
(U::CUBIC_FEET_PER_MINUTE, "cfm"),
(U::US_GALLONS_PER_MINUTE, "gpm"),
(U::METERS_PER_SECOND, "m/s"),
(U::FEET_PER_MINUTE, "fpm"),
(U::MILLIMETERS, "mm"),
(U::METERS, "m"),
(U::INCHES, "in"),
(U::FEET, "ft"),
(U::KILOGRAMS, "kg"),
(U::LUXES, "lx"),
];
pub(super) fn unit_symbol(units: U) -> String {
SYMBOLS
.iter()
.find(|(unit, _)| *unit == units)
.map_or_else(|| kebab(units), |(_, symbol)| (*symbol).to_string())
}