#bidirectional #unicode #text-processing

bidi

Implementation of the Unicode Bidirectional Algorithm (UBA)

2 releases

0.1.1 Sep 16, 2023
0.1.0 Sep 15, 2023

#1266 in Algorithms

MIT license

2MB
68K SLoC

Implementation of the Unicode Bidirectional Algorithm (UBA).

Reference: http://www.unicode.org/reports/tr9/.

Converts logical strings to their equivalent visual representation. Persian, Hebrew and Arabic languages (and any other RTL language) are supported.

use bidi:*;

let text: &str = "مهدی";
let mut text_u16 = text.encode_utf16().collect::<Vec<u16>>();

perform_shaping(&mut text_u16);

let result = String::from_utf16(text_u16.as_slice()).unwrap();
assert_eq!(result, "ﻣﻬﺪﯼ");

No runtime deps