package core:unicode

⌘K
Ctrl+K
or
/

    Types

    This section is empty.

    Constants

    MAX_ASCII ¶

    MAX_ASCII :: '\u007f'
     

    Maximum ASCII value

    MAX_LATIN1 ¶

    MAX_LATIN1 :: '\u00ff'
     

    Maximum Latin-1 value

    MAX_RUNE ¶

    MAX_RUNE :: '\U00010fff'
     

    Maximum valid unicode code point

    REPLACEMENT_CHAR ¶

    REPLACEMENT_CHAR :: '\ufffd'
     

    Represented an invalid code point

    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

    binary_search :: proc(c: i32, table: []i32, length, stride: int) -> int {…}

    is_combining ¶

    is_combining :: proc(r: rune) -> bool {…}

    is_control ¶

    is_control :: proc(r: rune) -> bool {…}

    is_digit ¶

    is_digit :: proc(r: rune) -> bool {…}

    is_emoji_extended_pictographic ¶

    is_emoji_extended_pictographic :: proc(r: rune) -> bool {…}
     

    Extended_Pictographic

    is_emoji_modifier ¶

    is_emoji_modifier :: proc(r: rune) -> bool {…}
     

    Emoji_Modifier

    is_enclosing_mark ¶

    is_enclosing_mark :: proc(r: rune) -> bool {…}
     

    General_Category=Enclosing_Mark

    is_gcb_extend_class ¶

    is_gcb_extend_class :: proc(r: 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: 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_grapheme_extend ¶

    is_grapheme_extend :: proc(r: rune) -> bool {…}
     

    Grapheme_Extend

    is_graphic ¶

    is_graphic :: proc(r: rune) -> bool {…}

    is_hangul_syllable_leading ¶

    is_hangul_syllable_leading :: proc(r: rune) -> bool {…}
     

    Hangul_Syllable_Type=Leading_Jamo

    is_hangul_syllable_lv ¶

    is_hangul_syllable_lv :: proc(r: rune) -> bool {…}
     

    Hangul_Syllable_Type=LV_Syllable

    is_hangul_syllable_lvt ¶

    is_hangul_syllable_lvt :: proc(r: rune) -> bool {…}
     

    Hangul_Syllable_Type=LVT_Syllable

    is_hangul_syllable_trailing ¶

    is_hangul_syllable_trailing :: proc(r: rune) -> bool {…}
     

    Hangul_Syllable_Type=Trailing_Jamo

    is_hangul_syllable_vowel ¶

    is_hangul_syllable_vowel :: proc(r: rune) -> bool {…}
     

    Hangul_Syllable_Type=Vowel_Jamo

    is_indic_conjunct_break_consonant ¶

    is_indic_conjunct_break_consonant :: proc(r: rune) -> bool {…}
     

    Indic_Conjunct_Break=Consonant

    is_indic_conjunct_break_extend ¶

    is_indic_conjunct_break_extend :: proc(r: rune) -> bool {…}
     

    Indic_Conjunct_Break=Extend

    is_indic_conjunct_break_linker ¶

    is_indic_conjunct_break_linker :: proc(r: rune) -> bool {…}
     

    Indic_Conjunct_Break=Linker

    is_indic_consonant_preceding_repha ¶

    is_indic_consonant_preceding_repha :: proc(r: rune) -> bool {…}
     

    Indic_Syllabic_Category=Consonant_Preceding_Repha

    is_indic_consonant_prefixed ¶

    is_indic_consonant_prefixed :: proc(r: rune) -> bool {…}
     

    Indic_Syllabic_Category=Consonant_Prefixed

    is_letter ¶

    is_letter :: proc(r: rune) -> bool {…}

    is_lower ¶

    is_lower :: proc(r: rune) -> bool {…}

    is_nonspacing_mark ¶

    is_nonspacing_mark :: proc(r: rune) -> bool {…}
     

    General_Category=Nonspacing_Mark

    is_number ¶

    is_number :: proc(r: rune) -> bool {…}

    is_prepended_concatenation_mark ¶

    is_prepended_concatenation_mark :: proc(r: rune) -> bool {…}
     

    Prepended_Concatenation_Mark

    is_print ¶

    is_print :: proc(r: rune) -> bool {…}

    is_punct ¶

    is_punct :: proc(r: rune) -> bool {…}

    is_regional_indicator ¶

    is_regional_indicator :: proc(r: rune) -> bool {…}
     

    Regional_Indicator

    is_space ¶

    is_space :: proc(r: rune) -> bool {…}

    is_spacing_mark ¶

    is_spacing_mark :: proc(r: rune) -> bool {…}
     

    General_Category=Spacing_Mark

    is_symbol ¶

    is_symbol :: proc(r: rune) -> bool {…}

    is_title ¶

    is_title :: proc(r: rune) -> bool {…}

    is_upper ¶

    is_upper :: proc(r: rune) -> bool {…}

    normalized_east_asian_width ¶

    normalized_east_asian_width :: proc(r: 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: rune) -> rune {…}

    to_title ¶

    to_title :: proc(r: rune) -> rune {…}

    to_upper ¶

    to_upper :: proc(r: rune) -> rune {…}

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2024-12 (vendor "odin") Windows_amd64 @ 2024-12-20 21:10:46.996785700 +0000 UTC