# unicode_bidi - Rust
API documentation for the Rust `unicode_bidi` crate.
Keywords: rust, rustlang, rust-lang, unicode_bidi

# Crate unicode_bidi [−] [src]

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;`
`pub use level::LTR_LEVEL;`
`pub use level::RTL_LEVEL;`

## Modules

deprecated | This module holds deprecated assets only.
format_chars | Directional Formatting Characters
level | Bidi Embedding Level

## 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

bidi_class | Find the `BidiClass` of a single char.

## Type Definitions

LevelRun | A maximal substring of characters with the same embedding level.