7#include "unicode_decomposition_type.hpp"
9#include "../algorithm.hpp"
14namespace hi::inline
v1 {
23 decompose_canonical = 1 << to_underlying(unicode_decomposition_type::canonical),
24 decompose_font = 1 << to_underlying(unicode_decomposition_type::font),
25 decompose_noBreak = 1 << to_underlying(unicode_decomposition_type::noBreak),
26 decompose_initial = 1 << to_underlying(unicode_decomposition_type::initial),
27 decompose_medial = 1 << to_underlying(unicode_decomposition_type::medial),
28 decompose_final = 1 << to_underlying(unicode_decomposition_type::_final),
29 decompose_isolated = 1 << to_underlying(unicode_decomposition_type::isolated),
30 decompose_circle = 1 << to_underlying(unicode_decomposition_type::circle),
31 decompose_super = 1 << to_underlying(unicode_decomposition_type::super),
32 decompose_sub = 1 << to_underlying(unicode_decomposition_type::sub),
33 decompose_fraction = 1 << to_underlying(unicode_decomposition_type::fraction),
34 decompose_vertical = 1 << to_underlying(unicode_decomposition_type::vertical),
35 decompose_wide = 1 << to_underlying(unicode_decomposition_type::wide),
36 decompose_narrow = 1 << to_underlying(unicode_decomposition_type::narrow),
37 decompose_small = 1 << to_underlying(unicode_decomposition_type::small),
38 decompose_square = 1 << to_underlying(unicode_decomposition_type::square),
39 decompose_compat = 1 << to_underlying(unicode_decomposition_type::compat),
83 NFD = decompose_canonical,
88 NFD | decompose_font | decompose_noBreak | decompose_initial | decompose_medial | decompose_final | decompose_isolated |
89 decompose_circle | decompose_super | decompose_sub | decompose_fraction | decompose_vertical | decompose_wide |
90 decompose_narrow | decompose_small | decompose_square | decompose_compat,
94[[nodiscard]]
constexpr unicode_normalization_mask decompose_newline_to(
char32_t new_line_char)
noexcept
96 switch (new_line_char) {
98 return unicode_normalization_mask::decompose_newline_to_LF;
100 return unicode_normalization_mask::decompose_newline_to_CRLF;
102 return unicode_normalization_mask::decompose_newline_to_PS;
104 return unicode_normalization_mask::decompose_newline_to_SP;
110[[nodiscard]]
constexpr bool any(unicode_normalization_mask
const& rhs)
noexcept
112 return to_bool(to_underlying(rhs));
116operator|(unicode_normalization_mask
const& lhs, unicode_normalization_mask
const& rhs)
noexcept
122operator&(unicode_normalization_mask
const& lhs, unicode_normalization_mask
const& rhs)
noexcept
128operator&(unicode_normalization_mask
const& lhs, unicode_decomposition_type
const& rhs)
noexcept
DOXYGEN BUG.
Definition algorithm.hpp:15
constexpr alignment operator|(horizontal_alignment lhs, vertical_alignment rhs) noexcept
Combine vertical and horizontal alignment.
Definition alignment.hpp:200
std::u32string unicode_NFD(std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFD) noexcept
Convert text to Unicode-NFD normal form.
std::u32string unicode_NFKD(std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFKD) noexcept
Convert text to Unicode-NFKD normal form.
std::u32string unicode_NFKC(std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFKD) noexcept
Convert text to Unicode-NFKC normal form.
std::u32string unicode_NFC(std::u32string_view text, unicode_normalization_mask normalization_mask=unicode_normalization_mask::NFD) noexcept
Convert text to Unicode-NFC normal form.
unicode_normalization_mask
Definition unicode_normalization.hpp:22
@ decompose_newline_to_SP
Decompose any newline character into SP (Space).
@ decompose_newline_to_LF
Decompose any newline character into LF (Line Feed).
@ decompose_newline_to_PS
Decompose any newline character into PS (Paragraph Separator).
@ decompose_newline
Mask for one of decompose_PS, decompose_LF or decompose_CRLF.
@ compose_CRLF
Compose CR+LF into a single LF.
@ decompose_control
During decomposition remove control characters.
@ NFKD
Compatible decomposition and composition.
@ NFD
Canonical decomposition and composition.
@ decompose_newline_to_CRLF
Decompose any newline character into CR+LF (Carriage Return + Line Feed).
A variant of text.
Definition label.hpp:36