#unicode #unicode-characters #width #truncate #pad #unicode-text #text

no-std unicode-truncate

Unicode-aware algorithm to pad or truncate str in terms of displayed width

4 releases (1 stable)

1.0.0 Apr 27, 2024
0.2.0 Dec 17, 2020
0.1.1 Aug 15, 2019
0.1.0 Aug 15, 2019

#83 in Text processing

Download history 3237/week @ 2024-01-22 2761/week @ 2024-01-29 2759/week @ 2024-02-05 2990/week @ 2024-02-12 3245/week @ 2024-02-19 3048/week @ 2024-02-26 2708/week @ 2024-03-04 2223/week @ 2024-03-11 3293/week @ 2024-03-18 3940/week @ 2024-03-25 3583/week @ 2024-04-01 3124/week @ 2024-04-08 4460/week @ 2024-04-15 3447/week @ 2024-04-22 4312/week @ 2024-04-29 4186/week @ 2024-05-06

16,890 downloads per month
Used in 30 crates (23 directly)

MIT/Apache

25KB
367 lines

unicode-truncate

Unicode-aware algorithm to pad or truncate str in terms of displayed width.

crates.io Documentation Build Status

Examples

Safely truncate string to display width even not at character boundaries.

use unicode_truncate::UnicodeTruncateStr;

fn main() {
    assert_eq!("你好吗".unicode_truncate(5), ("你好", 4));
}

Making sure the string is displayed in exactly number of columns by combining padding and truncating.

use unicode_truncate::UnicodeTruncateStr;
use unicode_truncate::Alignment;
use unicode_width::UnicodeWidthStr;

fn main() {
    let str = "你好吗".unicode_pad(5, Alignment::Left, true);
    assert_eq!(str, "你好 ");
    assert_eq!(str.width(), 5);
}

Features

unicode-truncate can be built without std by disabling the default feature std. However, in that case unicode_truncate::UnicodeTruncateStr::unicode_pad won't be available because it depends on std::string::String and std::borrow::Cow.

Dependencies

~505KB