10namespace hi::inline v1 {
12enum class unicode_general_category : uint8_t {
45[[nodiscard]]
constexpr bool is_LC(unicode_general_category
const &rhs)
noexcept
47 using enum unicode_general_category;
48 return rhs >= Lu and rhs <= Lt;
51[[nodiscard]]
constexpr bool is_L(unicode_general_category
const &rhs)
noexcept
53 using enum unicode_general_category;
54 return rhs >= Lu and rhs <= Lo;
57[[nodiscard]]
constexpr bool is_M(unicode_general_category
const &rhs)
noexcept
59 using enum unicode_general_category;
60 return rhs >= Mn and rhs <= Me;
63[[nodiscard]]
constexpr bool is_Mn_or_Mc(unicode_general_category
const &rhs)
noexcept
65 using enum unicode_general_category;
66 return rhs == Mn or rhs == Mc;
69[[nodiscard]]
constexpr bool is_N(unicode_general_category
const &rhs)
noexcept
71 using enum unicode_general_category;
72 return rhs >= Nd and rhs <= No;
75[[nodiscard]]
constexpr bool is_P(unicode_general_category
const &rhs)
noexcept
77 using enum unicode_general_category;
78 return rhs >= Pc and rhs <= Po;
81[[nodiscard]]
constexpr bool is_S(unicode_general_category
const &rhs)
noexcept
83 using enum unicode_general_category;
84 return rhs >= Sm and rhs <= So;
87[[nodiscard]]
constexpr bool is_Z(unicode_general_category
const &rhs)
noexcept
89 using enum unicode_general_category;
90 return rhs >= Zs and rhs <= Zp;
93[[nodiscard]]
constexpr bool is_Zp_or_Zl(unicode_general_category
const &rhs)
noexcept
95 using enum unicode_general_category;
96 return rhs == Zp or rhs == Zl;
99[[nodiscard]]
constexpr bool is_C(unicode_general_category
const &rhs)
noexcept
101 using enum unicode_general_category;
102 return rhs >= Cc and rhs <= Cn;
105[[nodiscard]]
constexpr bool is_visible(unicode_general_category
const &rhs)
noexcept
107 using enum unicode_general_category;
108 return rhs < Zs or rhs == Co;
111[[nodiscard]]
constexpr bool is_noncharacter(
char32_t rhs)
noexcept
113 hilet rhs_ =
static_cast<uint32_t
>(rhs);
114 return rhs_ >= 0x11'0000 or (rhs_ & 0xfffe) == 0xfffe or (rhs >= 0xfdd0 and rhs <= 0xfdef);
This file includes required definitions.
#define hilet
Invariant should be the default for variables.
Definition required.hpp:23