// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
namespace SixLabors.Fonts.Unicode {
///
/// Unicode Line_Break property values.
///
///
public enum LineBreakClass : uint
{
///
/// Open punctuation (OP): characters that prohibit a line break after them.
///
OpenPunctuation = 0,
///
/// Close punctuation (CL): characters that prohibit a line break before them.
///
ClosePunctuation = 1,
///
/// Close parenthesis (CP): closing bracket and parenthesis characters that prohibit a line break before them.
///
CloseParenthesis = 2,
///
/// Quotation (QU): quotation marks that can behave as opening punctuation, closing punctuation, or both.
///
Quotation = 3,
///
/// Non-breaking glue (GL): characters that prohibit line breaks before and after themselves.
///
Glue = 4,
///
/// Nonstarter (NS): characters that allow only indirect line breaks before themselves.
///
Nonstarter = 5,
///
/// Exclamation or interrogation (EX): sentence punctuation that prohibits a line break before itself.
///
Exclamation = 6,
///
/// Symbols allowing break after (SY): characters that prevent a line break before and allow one after.
///
BreakSymbols = 7,
///
/// Infix numeric separator (IS): characters that suppress breaks inside numeric expressions.
///
InfixNumeric = 8,
///
/// Prefix numeric (PR): characters that stay with a following numeric expression.
///
PrefixNumeric = 9,
///
/// Postfix numeric (PO): characters that stay with a preceding numeric expression.
///
PostfixNumeric = 10,
///
/// Numeric (NU): digits and related characters that form numeric expressions.
///
Numeric = 11,
///
/// Alphabetic (AL): letters and ordinary symbols that use alphabetic line breaking behavior.
///
Alphabetic = 12,
///
/// Hebrew letter (HL): Hebrew characters with special hyphen and solidus behavior.
///
HebrewLetter = 13,
///
/// Ideographic (ID): ideographic characters that generally allow breaks before or after.
///
Ideographic = 14,
///
/// Inseparable (IN): characters, such as leaders, that allow only indirect line breaks between pairs.
///
Inseparable = 15,
///
/// Hyphen (HY): hyphen-minus and similar characters that allow breaks after except in numeric context.
///
Hyphen = 16,
///
/// Break after (BA): characters that generally provide a line break opportunity after themselves.
///
BreakAfter = 17,
///
/// Break before (BB): characters that generally provide a line break opportunity before themselves.
///
BreakBefore = 18,
///
/// Break before and after (B2): characters that allow breaks on either side, but not between two B2 characters.
///
BreakBeforeAndAfter = 19,
///
/// Zero width space (ZW): an explicit opportunity for a line break.
///
ZeroWidthSpace = 20,
///
/// Combining mark (CM): combining marks and related controls that stay with the preceding character.
///
CombiningMark = 21,
///
/// Word joiner (WJ): characters that prohibit line breaks before and after themselves.
///
WordJoiner = 22,
///
/// Hangul LV syllable (H2): part of the Hangul sequence classes used to form Korean syllable blocks.
///
HangulLeadVowelSyllable = 23,
///
/// Hangul LVT syllable (H3): part of the Hangul sequence classes used to form Korean syllable blocks.
///
HangulLeadVowelTailSyllable = 24,
///
/// Hangul L Jamo (JL): leading consonant Jamo used to form Korean syllable blocks.
///
HangulLeadJamo = 25,
///
/// Hangul V Jamo (JV): vowel Jamo used to form Korean syllable blocks.
///
HangulVowelJamo = 26,
///
/// Hangul T Jamo (JT): trailing consonant Jamo used to form Korean syllable blocks.
///
HangulTailJamo = 27,
///
/// Regional indicator (RI): symbols paired for flag sequences.
///
RegionalIndicator = 28,
///
/// Emoji base (EB): emoji characters that must not break from a following emoji modifier.
///
EmojiBase = 29,
///
/// Emoji modifier (EM): emoji modifiers that must not break from a preceding emoji base.
///
EmojiModifier = 30,
///
/// Zero width joiner (ZWJ): joiner control that prohibits breaks inside joiner sequences.
///
ZeroWidthJoiner = 31,
///
/// Contingent break (CB): break opportunity determined by additional layout information.
///
ContingentBreak = 32,
///
/// Ambiguous alphabetic or ideographic (AI): resolved by LB1 before rule evaluation.
///
Ambiguous = 33,
///
/// Mandatory break (BK): characters that cause a line break after themselves.
///
MandatoryBreak = 34,
///
/// Conditional Japanese starter (CJ): small Kana and related characters resolved by tailoring.
///
ConditionalJapaneseStarter = 35,
///
/// Carriage return (CR): causes a line break after itself except in a CR LF sequence.
///
CarriageReturn = 36,
///
/// Line feed (LF): causes a line break after itself.
///
LineFeed = 37,
///
/// Next line (NL): causes a line break after itself.
///
NextLine = 38,
///
/// Complex context dependent (SA): requires language-specific analysis for line break opportunities.
///
ComplexContext = 39,
///
/// Surrogate (SG): surrogate code points, which do not occur in well-formed Unicode scalar text.
///
Surrogate = 40,
///
/// Space (SP): enables indirect line breaks.
///
Space = 41,
///
/// Aksara (AK): consonants that form orthographic syllables in Brahmic scripts.
///
Aksara = 43,
///
/// Aksara pre-base (AP): pre-base signs, such as repha, that form Brahmic orthographic syllables.
///
AksaraPrebase = 44,
///
/// Aksara start (AS): independent vowels and related starters for Brahmic orthographic syllables.
///
AksaraStart = 45,
///
/// Unambiguous hyphen (HH): hyphen characters with unambiguous break-after behavior except word-initially.
///
UnambiguousHyphen = 46,
///
/// Virama final (VF): final consonant viramas that form Brahmic orthographic syllables.
///
ViramaFinal = 47,
///
/// Virama (VI): conjoining viramas that form Brahmic orthographic syllables.
///
Virama = 48,
///
/// Unknown (XX): code points without an explicit line break class.
///
Unknown = 0xFF,
}
}