using System.ComponentModel.DataAnnotations;
namespace System.Unicode
{
/// Represents possible values for the Bidi_Class unicode property.
public enum BidirectionalClass : byte
{
/// Represents the value Left_To_Right.
/// Any strong left-to-right character.
[ValueName("L"), ValueName("Left_To_Right"), Display(Name = "Left_To_Right", Description = "Any strong left-to-right character.")]
LeftToRight,
/// Represents the value Right_To_Left.
/// Any strong right-to-left (non-Arabic-type) character.
[ValueName("R"), ValueName("Right_To_Left"), Display(Name = "Right_To_Left", Description = "Any strong right-to-left (non-Arabic-type) character.")]
RightToLeft,
/// Represents the value Arabic_Letter.
/// Any strong right-to-left (Arabic-type) character.
[ValueName("AL"), ValueName("Arabic_Letter"), Display(Name = "Arabic_Letter", Description = "Any strong right-to-left (Arabic-type) character.")]
ArabicLetter,
/// Represents the value European_Number.
/// Any ASCII digit or Eastern Arabic-Indic digit.
[ValueName("EN"), ValueName("European_Number"), Display(Name = "European_Number", Description = "Any ASCII digit or Eastern Arabic-Indic digit.")]
EuropeanNumber,
/// Represents the value European_Separator.
/// Plus and minus signs.
[ValueName("ES"), ValueName("European_Separator"), Display(Name = "European_Separator", Description = "Plus and minus signs.")]
EuropeanSeparator,
/// Represents the value European_Terminator.
/// A terminator in a numeric format context, includes currency signs.
[ValueName("ET"), ValueName("European_Terminator"), Display(Name = "European_Terminator", Description = "A terminator in a numeric format context, includes currency signs.")]
EuropeanTerminator,
/// Represents the value Arabic_Number.
/// Any Arabic-Indic digit.
[ValueName("AN"), ValueName("Arabic_Number"), Display(Name = "Arabic_Number", Description = "Any Arabic-Indic digit.")]
ArabicNumber,
/// Represents the value Common_Separator.
/// Commas, colons, and slashes.
[ValueName("CS"), ValueName("Common_Separator"), Display(Name = "Common_Separator", Description = "Commas, colons, and slashes.")]
CommonSeparator,
/// Represents the value Nonspacing_Mark.
/// Any nonspacing mark.
[ValueName("NSM"), ValueName("Nonspacing_Mark"), Display(Name = "Nonspacing_Mark", Description = "Any nonspacing mark.")]
NonSpacingMark,
/// Represents the value Boundary_Neutral.
/// Most format characters, control codes, or noncharacters.
[ValueName("BN"), ValueName("Boundary_Neutral"), Display(Name = "Boundary_Neutral", Description = "Most format characters, control codes, or noncharacters.")]
BoundaryNeutral,
/// Represents the value Paragraph_Separator.
/// Various newline characters.
[ValueName("B"), ValueName("Paragraph_Separator"), Display(Name = "Paragraph_Separator", Description = "Various newline characters.")]
ParagraphSeparator,
/// Represents the value Segment_Separator.
/// Various segment-related control codes.
[ValueName("S"), ValueName("Segment_Separator"), Display(Name = "Segment_Separator", Description = "Various segment-related control codes.")]
SegmentSeparator,
/// Represents the value White_Space.
/// Spaces.
[ValueName("WS"), ValueName("White_Space"), Display(Name = "White_Space", Description = "Spaces.")]
WhiteSpace,
/// Represents the value Other_Neutral.
/// Most other symbols and punctuation marks.
[ValueName("ON"), ValueName("Other_Neutral"), Display(Name = "Other_Neutral", Description = "Most other symbols and punctuation marks.")]
OtherNeutral,
/// Represents the value Left_To_Right_Embedding.
/// U+202A: the LR embedding control.
[ValueName("LRE"), ValueName("Left_To_Right_Embedding"), Display(Name = "Left_To_Right_Embedding", Description = "U+202A: the LR embedding control.")]
LeftToRightEmbedding,
/// Represents the value Left_To_Right_Override.
/// U+202D: the LR override control.
[ValueName("LRO"), ValueName("Left_To_Right_Override"), Display(Name = "Left_To_Right_Override", Description = "U+202D: the LR override control.")]
LeftToRightOverride,
/// Represents the value Right_To_Left_Embedding.
/// U+202B: the RL embedding control.
[ValueName("RLE"), ValueName("Right_To_Left_Embedding"), Display(Name = "Right_To_Left_Embedding", Description = "U+202B: the RL embedding control.")]
RightToLeftEmbedding,
/// Represents the value Right_To_Left_Override.
/// U+202E: the RL override control.
[ValueName("RLO"), ValueName("Right_To_Left_Override"), Display(Name = "Right_To_Left_Override", Description = "U+202E: the RL override control.")]
RightToLeftOverride,
/// Represents the value Pop_Directional_Format.
/// U+202C: terminates an embedding or override control.
[ValueName("PDF"), ValueName("Pop_Directional_Format"), Display(Name = "Pop_Directional_Format", Description = "U+202C: terminates an embedding or override control.")]
PopDirectionalFormat,
/// Represents the value Left_To_Right_Isolate.
/// U+2066: the LR isolate control.
[ValueName("LRI"), ValueName("Left_To_Right_Isolate"), Display(Name = "Left_To_Right_Isolate", Description = "U+2066: the LR isolate control.")]
LeftToRightIsolate,
/// Represents the value Right_To_Left_Isolate.
/// U+2067: the RL isolate control.
[ValueName("RLI"), ValueName("Right_To_Left_Isolate"), Display(Name = "Right_To_Left_Isolate", Description = "U+2067: the RL isolate control.")]
RightToLeftIsolate,
/// Represents the value First_Strong_Isolate.
/// U+2068: the first strong isolate control.
[ValueName("FSI"), ValueName("First_Strong_Isolate"), Display(Name = "First_Strong_Isolate", Description = "U+2068: the first strong isolate control.")]
FirstStrongIsolate,
/// Represents the value Pop_Directional_Isolate.
/// U+2069: terminates an isolate control.
[ValueName("PDI"), ValueName("Pop_Directional_Isolate"), Display(Name = "Pop_Directional_Isolate", Description = "U+2069: terminates an isolate control.")]
PopDirectionalIsolate,
}
}