package core:unicode
Index
Types (0)
This section is empty.
Variables (19)
- alpha_ranges
- alpha_singlets
- char_properties
- emoji_extended_pictographic_ranges
- grapheme_extend_ranges
- hangul_syllable_lv_singlets
- hangul_syllable_lvt_ranges
- indic_conjunct_break_consonant_ranges
- indic_conjunct_break_extend_ranges
- nonspacing_mark_ranges
- normalized_east_asian_width_ranges
- space_ranges
- spacing_mark_ranges
- to_lower_ranges
- to_lower_singlets
- to_title_singlets
- to_upper_ranges
- to_upper_singlets
- unicode_spaces
Procedures (40)
- binary_search
- is_alpha
- is_combining
- is_control
- is_digit
- is_emoji_extended_pictographic
- is_emoji_modifier
- is_enclosing_mark
- is_gcb_extend_class
- is_gcb_prepend_class
- is_grapheme_extend
- is_graphic
- is_hangul_syllable_leading
- is_hangul_syllable_lv
- is_hangul_syllable_lvt
- is_hangul_syllable_trailing
- is_hangul_syllable_vowel
- is_indic_conjunct_break_consonant
- is_indic_conjunct_break_extend
- is_indic_conjunct_break_linker
- is_indic_consonant_preceding_repha
- is_indic_consonant_prefixed
- is_letter
- is_lower
- is_nonspacing_mark
- is_number
- is_prepended_concatenation_mark
- is_print
- is_punct
- is_regional_indicator
- is_space
- is_spacing_mark
- is_symbol
- is_title
- is_upper
- is_white_space
- normalized_east_asian_width
- to_lower
- to_title
- to_upper
Procedure Groups (0)
This section is empty.
Types
This section is empty.
Constants
WORD_JOINER ¶
WORD_JOINER :: '\u2060'
ZERO_WIDTH_JOINER ¶
ZERO_WIDTH_JOINER :: '\u200D'
ZERO_WIDTH_NON_JOINER ¶
ZERO_WIDTH_NON_JOINER :: '\u200C'
ZERO_WIDTH_SPACE ¶
ZERO_WIDTH_SPACE :: '\u200B'
Variables
alpha_ranges ¶
@(rodata) alpha_ranges: [304]i32 = …
alpha_singlets ¶
@(rodata) alpha_singlets: [32]i32 = …
char_properties ¶
@(rodata) char_properties: [256]u8 = …
emoji_extended_pictographic_ranges ¶
@(rodata) emoji_extended_pictographic_ranges: [1022]i32 = …
grapheme_extend_ranges ¶
@(rodata) grapheme_extend_ranges: [752]i32 = …
hangul_syllable_lv_singlets ¶
@(rodata) hangul_syllable_lv_singlets: [399]i32 = …
hangul_syllable_lvt_ranges ¶
@(rodata) hangul_syllable_lvt_ranges: [798]i32 = …
indic_conjunct_break_consonant_ranges ¶
@(rodata) indic_conjunct_break_consonant_ranges: [52]i32 = …
indic_conjunct_break_extend_ranges ¶
@(rodata) indic_conjunct_break_extend_ranges: [340]i32 = …
nonspacing_mark_ranges ¶
@(rodata) nonspacing_mark_ranges: [692]i32 = …
normalized_east_asian_width_ranges ¶
@(rodata) normalized_east_asian_width_ranges: [489]i32 = …
Fullwidth (F) and Wide (W) are counted as 2. Everything else is 1.
Derived from: https://unicode.org/Public/15.1.0/ucd/EastAsianWidth.txt
space_ranges ¶
@(rodata) space_ranges: [26]i32 = …
spacing_mark_ranges ¶
@(rodata) spacing_mark_ranges: [364]i32 = …
to_lower_ranges ¶
@(rodata) to_lower_ranges: [108]i32 = …
to_lower_singlets ¶
@(rodata) to_lower_singlets: [666]i32 = …
to_title_singlets ¶
@(rodata) to_title_singlets: [16]i32 = …
to_upper_ranges ¶
@(rodata) to_upper_ranges: [105]i32 = …
to_upper_singlets ¶
@(rodata) to_upper_singlets: [680]i32 = …
unicode_spaces ¶
@(rodata) unicode_spaces: [18]i32 = …
Procedures
is_alpha ¶
is_alpha :: is_letter
is_combining ¶
is_combining :: proc(r: untyped rune) -> bool {…}
is_control ¶
is_control :: proc(r: untyped rune) -> bool {…}
is_digit ¶
is_digit :: proc(r: untyped rune) -> bool {…}
is_emoji_extended_pictographic ¶
is_emoji_extended_pictographic :: proc(r: untyped rune) -> bool {…}
Extended_Pictographic
is_enclosing_mark ¶
is_enclosing_mark :: proc(r: untyped rune) -> bool {…}
General_Category=Enclosing_Mark
is_gcb_extend_class ¶
is_gcb_extend_class :: proc(r: untyped rune) -> bool {…}
For grapheme text segmentation, from Unicode TR 29 Rev 43:
`
Grapheme_Extend = Yes, or
Emoji_Modifier = Yes
This includes: General_Category = Nonspacing_Mark General_Category = Enclosing_Mark U+200C ZERO WIDTH NON-JOINER
plus a few General_Category = Spacing_Mark needed for canonical equivalence.
`
is_gcb_prepend_class ¶
is_gcb_prepend_class :: proc(r: untyped rune) -> bool {…}
For grapheme text segmentation, from Unicode TR 29 Rev 43:
`
Indic_Syllabic_Category = Consonant_Preceding_Repha, or
Indic_Syllabic_Category = Consonant_Prefixed, or
Prepended_Concatenation_Mark = Yes
`
is_graphic ¶
is_graphic :: proc(r: untyped rune) -> bool {…}
is_hangul_syllable_leading ¶
is_hangul_syllable_leading :: proc(r: untyped rune) -> bool {…}
Hangul_Syllable_Type=Leading_Jamo
is_hangul_syllable_lv ¶
is_hangul_syllable_lv :: proc(r: untyped rune) -> bool {…}
Hangul_Syllable_Type=LV_Syllable
is_hangul_syllable_lvt ¶
is_hangul_syllable_lvt :: proc(r: untyped rune) -> bool {…}
Hangul_Syllable_Type=LVT_Syllable
is_hangul_syllable_trailing ¶
is_hangul_syllable_trailing :: proc(r: untyped rune) -> bool {…}
Hangul_Syllable_Type=Trailing_Jamo
is_hangul_syllable_vowel ¶
is_hangul_syllable_vowel :: proc(r: untyped rune) -> bool {…}
Hangul_Syllable_Type=Vowel_Jamo
is_indic_conjunct_break_consonant ¶
is_indic_conjunct_break_consonant :: proc(r: untyped rune) -> bool {…}
Indic_Conjunct_Break=Consonant
is_indic_conjunct_break_extend ¶
is_indic_conjunct_break_extend :: proc(r: untyped rune) -> bool {…}
Indic_Conjunct_Break=Extend
is_indic_conjunct_break_linker ¶
is_indic_conjunct_break_linker :: proc(r: untyped rune) -> bool {…}
Indic_Conjunct_Break=Linker
is_indic_consonant_preceding_repha ¶
is_indic_consonant_preceding_repha :: proc(r: untyped rune) -> bool {…}
Indic_Syllabic_Category=Consonant_Preceding_Repha
is_indic_consonant_prefixed ¶
is_indic_consonant_prefixed :: proc(r: untyped rune) -> bool {…}
Indic_Syllabic_Category=Consonant_Prefixed
is_letter ¶
is_letter :: proc(r: untyped rune) -> bool {…}
is_lower ¶
is_lower :: proc(r: untyped rune) -> bool {…}
is_nonspacing_mark ¶
is_nonspacing_mark :: proc(r: untyped rune) -> bool {…}
General_Category=Nonspacing_Mark
is_number ¶
is_number :: proc(r: untyped rune) -> bool {…}
is_prepended_concatenation_mark ¶
is_prepended_concatenation_mark :: proc(r: untyped rune) -> bool {…}
Prepended_Concatenation_Mark
is_print ¶
is_print :: proc(r: untyped rune) -> bool {…}
is_punct ¶
is_punct :: proc(r: untyped rune) -> bool {…}
is_regional_indicator ¶
is_regional_indicator :: proc(r: untyped rune) -> bool {…}
Regional_Indicator
is_space ¶
is_space :: proc(r: untyped rune) -> bool {…}
is_spacing_mark ¶
is_spacing_mark :: proc(r: untyped rune) -> bool {…}
General_Category=Spacing_Mark
is_symbol ¶
is_symbol :: proc(r: untyped rune) -> bool {…}
is_title ¶
is_title :: proc(r: untyped rune) -> bool {…}
is_upper ¶
is_upper :: proc(r: untyped rune) -> bool {…}
is_white_space ¶
is_white_space :: is_space
normalized_east_asian_width ¶
normalized_east_asian_width :: proc(r: untyped rune) -> int {…}
Return values:
2 if East_Asian_Width=F or W, or 0 if non-printable / zero-width, or 1 in all other cases.
to_lower ¶
to_lower :: proc(r: untyped rune) -> untyped rune {…}
to_title ¶
to_title :: proc(r: untyped rune) -> untyped rune {…}
to_upper ¶
to_upper :: proc(r: untyped rune) -> untyped rune {…}
Procedure Groups
This section is empty.
Source Files
Generation Information
Generated with odin version dev-2025-03 (vendor "odin") Windows_amd64 @ 2025-03-25 21:11:16.656560300 +0000 UTC