From b7348809035cb7444360c59af6b669351bad5fff Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Fri, 21 Oct 2022 23:10:12 +0200 Subject: [PATCH] refactor: `standard` renamed to `unicode` in `basic_symbol_text` --- src/core/include/units/symbol_text.h | 109 ++++++++++++++------------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/src/core/include/units/symbol_text.h b/src/core/include/units/symbol_text.h index e6adbe34..eaef22b4 100644 --- a/src/core/include/units/symbol_text.h +++ b/src/core/include/units/symbol_text.h @@ -57,119 +57,120 @@ constexpr void validate_ascii_string([[maybe_unused]] const char (&s)[N + 1]) no * representation. In the libary it is used to define symbols of units and prefixes. * Each symbol can have two versions: Unicode and ASCI-only. * - * @tparam StandardCharT Character type to be used for a Unicode representation + * @tparam UnicodeCharT Character type to be used for a Unicode representation * @tparam N The size of a Unicode symbol * @tparam M The size of the ASCII-only symbol */ -template +template struct basic_symbol_text { - basic_fixed_string standard_; + basic_fixed_string unicode_; basic_fixed_string ascii_; - constexpr explicit(false) basic_symbol_text(char std) noexcept : standard_(std), ascii_(std) + constexpr explicit(false) basic_symbol_text(char txt) noexcept : unicode_(txt), ascii_(txt) { - detail::validate_ascii_char(std); + detail::validate_ascii_char(txt); } - constexpr basic_symbol_text(StandardCharT std, char a) noexcept : standard_(std), ascii_(a) + constexpr basic_symbol_text(UnicodeCharT u, char a) noexcept : unicode_(u), ascii_(a) { detail::validate_ascii_char(a); } - constexpr explicit(false) basic_symbol_text(const char (&std)[N + 1]) noexcept : standard_(std), ascii_(std) + constexpr explicit(false) basic_symbol_text(const char (&txt)[N + 1]) noexcept : unicode_(txt), ascii_(txt) { - detail::validate_ascii_string(std); + detail::validate_ascii_string(txt); } - constexpr explicit(false) basic_symbol_text(const basic_fixed_string& std) noexcept : - standard_(std), ascii_(std) + constexpr explicit(false) basic_symbol_text(const basic_fixed_string& txt) noexcept : + unicode_(txt), ascii_(txt) { - detail::validate_ascii_string(std.data_); + detail::validate_ascii_string(txt.data_); } - constexpr basic_symbol_text(const StandardCharT (&std)[N + 1], const char (&ascii)[M + 1]) noexcept : - standard_(std), ascii_(ascii) + constexpr basic_symbol_text(const UnicodeCharT (&u)[N + 1], const char (&a)[M + 1]) noexcept : unicode_(u), ascii_(a) { - detail::validate_ascii_string(ascii); + detail::validate_ascii_string(a); } - constexpr basic_symbol_text(const basic_fixed_string& std, - const basic_fixed_string& ascii) noexcept : - standard_(std), ascii_(ascii) + constexpr basic_symbol_text(const basic_fixed_string& u, + const basic_fixed_string& a) noexcept : + unicode_(u), ascii_(a) { - detail::validate_ascii_string(ascii.data_); + detail::validate_ascii_string(a.data_); } - [[nodiscard]] constexpr auto& standard() { return standard_; } - [[nodiscard]] constexpr const auto& standard() const { return standard_; } + [[nodiscard]] constexpr auto& unicode() { return unicode_; } + [[nodiscard]] constexpr const auto& unicode() const { return unicode_; } [[nodiscard]] constexpr auto& ascii() { return ascii_; } [[nodiscard]] constexpr const auto& ascii() const { return ascii_; } + [[nodiscard]] constexpr bool empty() const { return unicode().empty() && ascii().empty(); } + template - [[nodiscard]] constexpr friend basic_symbol_text operator+( - const basic_symbol_text& lhs, const basic_symbol_text& rhs) noexcept + [[nodiscard]] constexpr friend basic_symbol_text operator+( + const basic_symbol_text& lhs, const basic_symbol_text& rhs) noexcept { - return basic_symbol_text(lhs.standard() + rhs.standard(), lhs.ascii() + rhs.ascii()); + return basic_symbol_text(lhs.unicode() + rhs.unicode(), lhs.ascii() + rhs.ascii()); } template - [[nodiscard]] constexpr friend basic_symbol_text operator+( - const basic_symbol_text& lhs, const basic_fixed_string& rhs) noexcept + [[nodiscard]] constexpr friend basic_symbol_text operator+( + const basic_symbol_text& lhs, const basic_fixed_string& rhs) noexcept { - return lhs + basic_symbol_text(rhs); + return lhs + basic_symbol_text(rhs); } template - [[nodiscard]] constexpr friend basic_symbol_text operator+( - const basic_fixed_string& lhs, const basic_symbol_text& rhs) noexcept + [[nodiscard]] constexpr friend basic_symbol_text operator+( + const basic_fixed_string& lhs, const basic_symbol_text& rhs) noexcept { - return basic_symbol_text(lhs) + rhs; + return basic_symbol_text(lhs) + rhs; } template - [[nodiscard]] constexpr friend basic_symbol_text operator+( - const basic_symbol_text& lhs, const StandardCharT (&rhs)[N2]) noexcept + [[nodiscard]] constexpr friend basic_symbol_text operator+( + const basic_symbol_text& lhs, const UnicodeCharT (&rhs)[N2]) noexcept { - return lhs + basic_symbol_text(rhs); + return lhs + basic_symbol_text(rhs); } template - [[nodiscard]] constexpr friend basic_symbol_text operator+( - const StandardCharT (&lhs)[N2], const basic_symbol_text& rhs) noexcept + [[nodiscard]] constexpr friend basic_symbol_text operator+( + const UnicodeCharT (&lhs)[N2], const basic_symbol_text& rhs) noexcept { - return basic_symbol_text(lhs) + rhs; + return basic_symbol_text(lhs) + rhs; } - [[nodiscard]] constexpr friend basic_symbol_text operator+(const basic_symbol_text& lhs, - StandardCharT rhs) noexcept + [[nodiscard]] constexpr friend basic_symbol_text operator+(const basic_symbol_text& lhs, + UnicodeCharT rhs) noexcept { - return lhs + basic_symbol_text(rhs); + return lhs + basic_symbol_text(rhs); } - [[nodiscard]] constexpr friend basic_symbol_text operator+( - StandardCharT lhs, const basic_symbol_text& rhs) noexcept + [[nodiscard]] constexpr friend basic_symbol_text operator+( + UnicodeCharT lhs, const basic_symbol_text& rhs) noexcept { - return basic_symbol_text(lhs) + rhs; + return basic_symbol_text(lhs) + rhs; } - template + template [[nodiscard]] friend constexpr auto operator<=>(const basic_symbol_text& lhs, - const basic_symbol_text& rhs) noexcept + const basic_symbol_text& rhs) noexcept { UNITS_DIAGNOSTIC_PUSH UNITS_DIAGNOSTIC_IGNORE_ZERO_AS_NULLPOINTER_CONSTANT - if (const auto cmp = lhs.standard() <=> rhs.standard(); cmp != 0) return cmp; + if (const auto cmp = lhs.unicode() <=> rhs.unicode(); cmp != 0) return cmp; UNITS_DIAGNOSTIC_POP return lhs.ascii() <=> rhs.ascii(); } - template + template [[nodiscard]] friend constexpr bool operator==(const basic_symbol_text& lhs, - const basic_symbol_text& rhs) noexcept + const basic_symbol_text& rhs) noexcept { - return lhs.standard() == rhs.standard() && lhs.ascii() == rhs.ascii(); + return lhs.unicode() == rhs.unicode() && lhs.ascii() == rhs.ascii(); } }; basic_symbol_text(char)->basic_symbol_text; -template -basic_symbol_text(StandardCharT, char) -> basic_symbol_text; +template +basic_symbol_text(UnicodeCharT, char) -> basic_symbol_text; template basic_symbol_text(const char (&)[N]) -> basic_symbol_text; @@ -177,11 +178,11 @@ basic_symbol_text(const char (&)[N]) -> basic_symbol_text; template basic_symbol_text(const basic_fixed_string&) -> basic_symbol_text; -template -basic_symbol_text(const StandardCharT (&)[N], const char (&)[M]) -> basic_symbol_text; +template +basic_symbol_text(const UnicodeCharT (&)[N], const char (&)[M]) -> basic_symbol_text; -template -basic_symbol_text(const basic_fixed_string&, const basic_fixed_string&) - -> basic_symbol_text; +template +basic_symbol_text(const basic_fixed_string&, const basic_fixed_string&) + -> basic_symbol_text; } // namespace units