// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #pragma once #include #include #include namespace gui::temperature { inline constexpr auto celsiusSymbol = "C"; inline constexpr auto fahrenheitSymbol = "F"; inline constexpr auto degree = "\u00B0"; inline constexpr auto celsiusDegreeSymbol = "\u00B0C"; inline constexpr auto fahrenheitDegreeSymbol = "\u00B0F"; struct Temperature { enum class Unit { Celsius, Fahrenheit }; Unit unit; std::int32_t value; }; inline std::string toStr(Temperature::Unit unit) { return unit == Temperature::Unit::Celsius ? celsiusSymbol : fahrenheitSymbol; } inline std::optional strToUnit(std::string_view str) { if (str == gui::temperature::celsiusDegreeSymbol) { return gui::temperature::Temperature::Unit::Celsius; } else if (str == gui::temperature::fahrenheitDegreeSymbol) { return gui::temperature::Temperature::Unit::Fahrenheit; } return {}; } } // namespace gui::temperature