Table of Contents

Namespace Egami.Fonts.Unicode

Classes

Bidi

The Unicode Bidirectional Algorithm (UAX #9): embedding levels for mixed left-to-right and right-to-left text, and the visual order of a line.

BidiResult

The result of Resolve(ReadOnlySpan<char>, TextDirection): a level per UTF-16 unit, the runs in logical order, and the visual order of any line. Dispose it to return its arrays to the pool.

TextSegmenter

Text boundaries from UAX #29: extended grapheme clusters (what a reader sees as one character) and words, with Unicode's default rules and no dictionaries.

UnicodeData

The Unicode character properties text shaping needs, from Egami's own tables generated from the Unicode Character Database (version UnicodeVersion), so results never move with the .NET runtime's Unicode version.

Structs

BidiRun

A run of UTF-16 units at one embedding level.

GraphemeEnumerator

Enumerates extended grapheme clusters; get one from Graphemes(ReadOnlySpan<char>).

Script

A Unicode script, such as Latin, Arabic or Devanagari, with its ISO 15924 code and the OpenType script tags fonts use for it.

TextSegment

A range of UTF-16 units: a grapheme cluster, a word or a run.

WordEnumerator

Enumerates the segments between word boundaries; get one from Words(ReadOnlySpan<char>).

Enums

BidiClass

A code point's Bidi_Class (UAX #9).

BidiPairedBracketType

A code point's Bidi_Paired_Bracket_Type.

EastAsianWidth

A code point's East_Asian_Width (UAX #11).

JoiningGroup

A code point's Joining_Group, the letter shape family of an Arabic or Syriac letter.

JoiningType

A code point's Joining_Type, which drives cursive joining in Arabic, Syriac, N'Ko, Mongolian and similar scripts.

LineBreakClass

A code point's Line_Break class (UAX #14), which line breaking starts from.

TextDirection

The direction of a paragraph or a run of text.

VerticalOrientation

A code point's Vertical_Orientation (UAX #50): upright or rotated in vertical text.