[][src]Crate unicode_bidi

This crate implements the Unicode Bidirectional Algorithm for display of mixed right-to-left and left-to-right text. It is written in safe Rust, compatible with the current stable release.

Example

use unicode_bidi::BidiInfo;

// This example text is defined using `concat!` because some browsers
// and text editors have trouble displaying bidi strings.
let text = concat![
  "א",
  "ב",
  "ג",
  "a",
  "b",
  "c",
];

// Resolve embedding levels within the text.  Pass `None` to detect the
// paragraph level automatically.
let bidi_info = BidiInfo::new(&text, None);

// This paragraph has embedding level 1 because its first strong character is RTL.
assert_eq!(bidi_info.paragraphs.len(), 1);
let para = &bidi_info.paragraphs[0];
assert_eq!(para.level.number(), 1);
assert_eq!(para.level.is_rtl(), true);

// Re-ordering is done after wrapping each paragraph into a sequence of
// lines. For this example, I'll just use a single line that spans the
// entire paragraph.
let line = para.range.clone();

let display = bidi_info.reorder_line(para, line);
assert_eq!(display, concat![
  "a",
  "b",
  "c",
  "ג",
  "ב",
  "א",
]);

Re-exports

pub use level::Level;

Modules

char_data

Accessor for Bidi_Class property from Unicode Character Database (UCD)

deprecated

This module holds deprecated assets only.

explicit

3.3.2 Explicit Levels and Directions

format_chars

Directional Formatting Characters

implicit

3.3.4 - 3.3.6. Resolve implicit levels and types.

level

Bidi Embedding Level

prepare

3.3.3 Preparations for Implicit Processing

Structs

BidiInfo

Bidi information of the text

InitialInfo

Initial bidi information of the text

ParagraphInfo

Bidi information about a single paragraph

Enums

BidiClass

Represents values of the Unicode character property Bidi_Class, also known as the bidirectional character type.

Constants

UNICODE_VERSION

The Unicode version of data

Functions

assign_levels_to_removed_chars

Assign levels to characters removed by rule X9.

bidi_class

Find the BidiClass of a single char.

Type Definitions

LevelRun

A maximal substring of characters with the same embedding level.