dius 0.1.0
Loading...
Searching...
No Matches
general_category.h
Go to the documentation of this file.
1// This file was generated automatically by unicode.py
2
3#pragma once
4
5#include "di/reflect/prelude.h"
7
8namespace dius::unicode {
43
44constexpr auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<GeneralCategory>) {
45 using enum GeneralCategory;
46 return di::make_enumerators<"GeneralCategory">(
47 di::enumerator<"Control", Control>, di::enumerator<"Format", Format>, di::enumerator<"Unassigned", Unassigned>,
48 di::enumerator<"PrivateUse", PrivateUse>, di::enumerator<"Surrogate", Surrogate>,
49 di::enumerator<"CasedLetter", CasedLetter>, di::enumerator<"LowercaseLetter", LowercaseLetter>,
50 di::enumerator<"ModifierLetter", ModifierLetter>, di::enumerator<"OtherLetter", OtherLetter>,
51 di::enumerator<"TitlecaseLetter", TitlecaseLetter>, di::enumerator<"UppercaseLetter", UppercaseLetter>,
52 di::enumerator<"SpacingMark", SpacingMark>, di::enumerator<"EnclosingMark", EnclosingMark>,
53 di::enumerator<"NonspacingMark", NonspacingMark>, di::enumerator<"DecimalNumber", DecimalNumber>,
54 di::enumerator<"LetterNumber", LetterNumber>, di::enumerator<"OtherNumber", OtherNumber>,
55 di::enumerator<"ConnectorPunctuation", ConnectorPunctuation>,
56 di::enumerator<"DashPunctuation", DashPunctuation>, di::enumerator<"ClosePunctuation", ClosePunctuation>,
57 di::enumerator<"FinalPunctuation", FinalPunctuation>, di::enumerator<"InitialPunctuation", InitialPunctuation>,
58 di::enumerator<"OtherPunctuation", OtherPunctuation>, di::enumerator<"OpenPunctuation", OpenPunctuation>,
59 di::enumerator<"CurrencySymbol", CurrencySymbol>, di::enumerator<"ModifierSymbol", ModifierSymbol>,
60 di::enumerator<"MathSymbol", MathSymbol>, di::enumerator<"OtherSymbol", OtherSymbol>,
61 di::enumerator<"LineSeparator", LineSeparator>, di::enumerator<"ParagraphSeparator", ParagraphSeparator>,
62 di::enumerator<"SpaceSeparator", SpaceSeparator>, di::enumerator<"Invalid", Invalid>);
63}
64
65constexpr auto category_other(GeneralCategory category) -> bool {
66 using enum GeneralCategory;
67 return category == OtherLetter || category == OtherNumber || category == OtherPunctuation ||
68 category == OtherSymbol;
69}
70
71constexpr auto category_letter(GeneralCategory category) -> bool {
72 using enum GeneralCategory;
73 return category == CasedLetter || category == LowercaseLetter || category == ModifierLetter ||
74 category == OtherLetter || category == TitlecaseLetter || category == UppercaseLetter ||
75 category == LetterNumber;
76}
77
78constexpr auto category_mark(GeneralCategory category) -> bool {
79 using enum GeneralCategory;
80 return category == SpacingMark || category == EnclosingMark || category == NonspacingMark;
81}
82
83constexpr auto category_number(GeneralCategory category) -> bool {
84 using enum GeneralCategory;
85 return category == DecimalNumber || category == LetterNumber || category == OtherNumber;
86}
87
88constexpr auto category_punctuation(GeneralCategory category) -> bool {
89 using enum GeneralCategory;
90 return category == ConnectorPunctuation || category == DashPunctuation || category == ClosePunctuation ||
91 category == FinalPunctuation || category == InitialPunctuation || category == OtherPunctuation ||
92 category == OpenPunctuation;
93}
94
95constexpr auto category_symbol(GeneralCategory category) -> bool {
96 using enum GeneralCategory;
97 return category == CurrencySymbol || category == ModifierSymbol || category == MathSymbol ||
98 category == OtherSymbol;
99}
100
101constexpr auto category_separator(GeneralCategory category) -> bool {
102 using enum GeneralCategory;
103 return category == LineSeparator || category == ParagraphSeparator || category == SpaceSeparator;
104}
105
106namespace detail {
107 auto general_category_ranges() -> di::Span<PropertyRange<GeneralCategory> const>;
108}
109
110inline auto general_category =
112}
Definition print.h:8
auto general_category_ranges() -> di::Span< PropertyRange< GeneralCategory > const >
Definition default_ignorable_code_point.h:8
constexpr auto ParagraphSeparator
Definition name.h:46
constexpr auto category_number(GeneralCategory category) -> bool
Definition general_category.h:83
constexpr auto category_separator(GeneralCategory category) -> bool
Definition general_category.h:101
constexpr auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< DefaultIgnorableCodePoint >)
Definition default_ignorable_code_point.h:14
constexpr auto LineSeparator
Definition name.h:45
constexpr auto category_letter(GeneralCategory category) -> bool
Definition general_category.h:71
constexpr auto category_symbol(GeneralCategory category) -> bool
Definition general_category.h:95
constexpr auto category_mark(GeneralCategory category) -> bool
Definition general_category.h:78
constexpr auto category_other(GeneralCategory category) -> bool
Definition general_category.h:65
constexpr auto category_punctuation(GeneralCategory category) -> bool
Definition general_category.h:88
auto general_category
Definition general_category.h:110
GeneralCategory
Definition general_category.h:9
@ SpaceSeparator
Definition general_category.h:40
@ DecimalNumber
Definition general_category.h:24
@ LowercaseLetter
Definition general_category.h:16
@ SpacingMark
Definition general_category.h:21
@ OtherPunctuation
Definition general_category.h:32
@ Unassigned
Definition general_category.h:12
@ LetterNumber
Definition general_category.h:25
@ FinalPunctuation
Definition general_category.h:30
@ CurrencySymbol
Definition general_category.h:34
@ Invalid
Definition general_category.h:41
@ Format
Definition general_category.h:11
@ CasedLetter
Definition general_category.h:15
@ OtherLetter
Definition general_category.h:18
@ OtherSymbol
Definition general_category.h:37
@ InitialPunctuation
Definition general_category.h:31
@ DashPunctuation
Definition general_category.h:28
@ OtherNumber
Definition general_category.h:26
@ NonspacingMark
Definition general_category.h:23
@ PrivateUse
Definition general_category.h:13
@ ModifierSymbol
Definition general_category.h:35
@ OpenPunctuation
Definition general_category.h:33
@ TitlecaseLetter
Definition general_category.h:19
@ Control
Definition general_category.h:10
@ ModifierLetter
Definition general_category.h:17
@ EnclosingMark
Definition general_category.h:22
@ Surrogate
Definition general_category.h:14
@ MathSymbol
Definition general_category.h:36
@ ConnectorPunctuation
Definition general_category.h:27
@ UppercaseLetter
Definition general_category.h:20
@ ClosePunctuation
Definition general_category.h:29
Definition property_range.h:35