|
HikoGUI
A low latency retained GUI
|
#include <hikogui/unicode/grapheme.hpp>
Public Types | |
| using | value_type = uint32_t |
Public Member Functions | |
| constexpr | grapheme (grapheme const &) noexcept=default |
| constexpr | grapheme (grapheme &&) noexcept=default |
| constexpr grapheme & | operator= (grapheme const &) noexcept=default |
| constexpr grapheme & | operator= (grapheme &&) noexcept=default |
| constexpr | grapheme (nullptr_t) noexcept |
| constexpr | grapheme (char32_t code_point) noexcept |
| Encode a single code-point. | |
| constexpr | grapheme (char ascii_char) noexcept |
| constexpr grapheme & | operator= (char32_t code_point) noexcept |
| Encode a single code-point. | |
| constexpr grapheme & | operator= (char ascii_char) noexcept |
| Encode a single code-point. | |
| grapheme (std::u32string_view code_points) noexcept | |
| Encode a grapheme from a list of code-points. | |
| grapheme (composed_t, std::u32string_view code_points) noexcept | |
| Encode a grapheme from a list of code-points. | |
| constexpr void | clear () noexcept |
| Clear the grapheme. | |
| constexpr bool | empty () const noexcept |
| Check if the grapheme is empty. | |
| constexpr | operator bool () const noexcept |
| Check if the grapheme holds any code-points. | |
| bool | valid () const noexcept |
| Check if the grapheme is valid. | |
| std::u32string const & | long_grapheme () const noexcept |
| constexpr std::size_t | size () const noexcept |
| Return the number of code-points encoded in the grapheme. | |
| constexpr char32_t | operator[] (size_t i) const noexcept |
| Get the code-point at the given index. | |
| constexpr std::u32string | composed () const noexcept |
| Get a list of code-point normalized to NFC. | |
| std::u32string | decomposed () const noexcept |
| Get a list of code-point normalized to NFD. | |
Static Public Member Functions | |
| static constexpr grapheme | eof () noexcept |
| Create empty grapheme / end-of-file. | |
Data Fields | |
| value_type | _value |
| A pointer to a grapheme. | |
Friends | |
| template<size_t I> | |
| constexpr char32_t | get (grapheme const &rhs) noexcept |
| Get the code-point at the given index. | |
| constexpr bool | operator== (grapheme const &, grapheme const &) noexcept=default |
| Compare equivalence of two graphemes. | |
| constexpr std::strong_ordering | operator<=> (grapheme const &lhs, grapheme const &rhs) noexcept |
| Compare two graphemes lexicographically. | |
| constexpr bool | operator== (grapheme const &lhs, char32_t const &rhs) noexcept |
| constexpr std::strong_ordering | operator<=> (grapheme const &lhs, char32_t const &rhs) noexcept |
| constexpr bool | operator== (grapheme const &lhs, char const &rhs) noexcept |
| constexpr std::strong_ordering | operator<=> (grapheme const &lhs, char const &rhs) noexcept |
| std::string | to_string (grapheme const &rhs) noexcept |
| std::u32string | to_u32string (grapheme const &rhs) noexcept |
A grapheme-cluster, what a user thinks a character is.
A grapheme should not include typographical ligatures such as 'fi' as the font should handle creating ligatures.
If a grapheme is initialized with more than 1 code-points a long_grapheme is allocated. This grapheme is never deleted from memory.
This class is trivial and constant-destructible so that it can be used as a character class in std::basic_string and used as a non-type template parameter.
Encode a single code-point.
|
explicitnoexcept |
Encode a grapheme from a list of code-points.
| code_points | The non-normalized list of code-points. |
|
explicitnoexcept |
Encode a grapheme from a list of code-points.
| code_points | The NFC/NKFC normalized and composed code-point of this grapheme. |
|
inlineconstexprnoexcept |
Get a list of code-point normalized to NFC.
|
noexcept |
Get a list of code-point normalized to NFD.
Check if the grapheme is empty.
Create empty grapheme / end-of-file.
Check if the grapheme holds any code-points.
Encode a single code-point.
Encode a single code-point.
Get the code-point at the given index.
| i | Index of code-point in the grapheme. |
|
inlineconstexprnoexcept |
Return the number of code-points encoded in the grapheme.
|
noexcept |
Check if the grapheme is valid.
A grapheme is invalid in case:
Get the code-point at the given index.
| I | Index of code-point in the grapheme. |
| rhs | The grapheme to query. |
Compare two graphemes lexicographically.
Compare equivalence of two graphemes.
| value_type v1::grapheme::_value |
A pointer to a grapheme.
This class will hold:
Bits [31:21] are always '0'.