Arabic Reshaper Rust
A no-std crate to reconstruct Arabic, Turkish and Persian sentences to be used in applications that don't support Arabic script.
Usage:
resahpe a single line of string
use ;
let reshaper = default;
// You can reshape just a single string using
println!;
// or using `reshape_line` method if you dont want to construct the [ArabicReshaper]
// and you just want to reshape a few strings with default config
println!;
// Both will reconstruct the string and print `ﺳﻼﻡ ﺩﻧﯿﺎ`
reshape a slice of strings
use ArabicReshaper;
let reshaper = default;
let lines = ;
println!;
// or you can just use reshape method in a loop... the choice is yours.
reshape strings on a iterator
use *;
for line in .iter.reshape_default
You can check examples or tests directory for more examples.
features:
- serde: if this feature is enabled the
ReshaperConfig
can be serialized and de-serialized using serde. - ttf-parser: if you enable this feature the
ReshaperConfig
method will have another extra method namedfrom_font
that can be used to enable ligatures only if they exist in the input font.
notes:
- keep in mind that this crate need a allocator to work, because we depend on
alloc
internally.
Credits:
this project is based on the awesome python-arabic-reshaper
.