// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
namespace SixLabors.Fonts.Unicode {
///
/// Unicode East_Asian_Width property values.
///
///
///
/// East_Asian_Width is a Unicode character property used when interoperating with
/// East Asian legacy encodings and typography. The property has six default values,
/// but any operation that needs a display-cell width must still resolve those values
/// to a context-specific narrow or wide result.
///
public enum EastAsianWidthClass
{
///
/// Neutral (N): characters that are not East Asian for this property.
///
///
/// Neutral characters are not normally found in legacy East Asian character sets or
/// traditional East Asian typography. UAX #11 recommends treating them like narrow
/// characters for practical resolved-width decisions, but the property value itself
/// is distinct from .
///
Neutral = 0,
///
/// Ambiguous (A): characters that can be either wide or narrow depending on context.
///
///
/// Ambiguous characters need extra information, such as language, script, font,
/// source encoding, or explicit markup, before they can be resolved to a display
/// width. In East Asian legacy contexts they may be treated as wide;
/// otherwise UAX #11 recommends treating them as narrow by default.
///
Ambiguous = 1,
///
/// Fullwidth (F): explicitly encoded fullwidth compatibility characters.
///
///
/// Fullwidth characters have a compatibility decomposition of type <wide>
/// to another Unicode character that is implicitly narrow. They exist to preserve
/// round-tripping with mixed-width East Asian legacy encodings.
///
Fullwidth = 2,
///
/// Halfwidth (H): explicitly encoded halfwidth compatibility characters.
///
///
/// Halfwidth characters have a compatibility decomposition of type <narrow>
/// to another Unicode character that is implicitly wide, with the special case of
/// U+20A9 WON SIGN. They are distinct from ordinary narrow characters because they
/// can still behave like East Asian compatibility forms for font selection and some
/// punctuation behavior.
///
Halfwidth = 3,
///
/// Narrow (Na): characters that are always narrow and have explicit wide or fullwidth counterparts.
///
///
/// Narrow characters are implicitly narrow in East Asian typography and legacy
/// character sets. ASCII is the common example: the ordinary ASCII code points are
/// Narrow, while their compatibility forms are Fullwidth.
///
Narrow = 4,
///
/// Wide (W): characters that are always wide in East Asian typography.
///
///
/// Wide characters behave like ideographs for East Asian layout. This includes
/// many Han, Kana, Hangul, and emoji-presentation characters that are not encoded
/// as explicit Fullwidth compatibility forms.
///
Wide = 5
}
}