Actually unicode_width is more suitable

This commit is contained in:
Arne Keller 2021-03-28 14:40:09 +02:00
parent 73cc36ce71
commit 2d485d6b34
3 changed files with 11 additions and 11 deletions

View File

@ -17,4 +17,4 @@ keywords = ["ascii", "table"]
colorful = "0.2"
[dependencies]
unicode-segmentation = "1.7.1"
unicode-width = "0.1.8"

View File

@ -58,7 +58,7 @@ mod test;
use std::collections::BTreeMap;
use std::fmt::Display;
use unicode_segmentation::UnicodeSegmentation;
use unicode_width::UnicodeWidthStr;
const SE: &str = "";
const NW: &str = "";
@ -398,7 +398,7 @@ impl SmartString {
fn char_len(&self) -> usize {
self.fragments.iter()
.filter(|(visible, _)| *visible)
.map(|(_, string)| UnicodeSegmentation::graphemes(string.as_str(), true).count())
.map(|(_, string)| UnicodeWidthStr::width(string.as_str()))
.sum()
}

View File

@ -335,14 +335,14 @@ fn show_one_character_for_header2() {
#[test]
fn cube_with_partial_content() {
let config = cube_config();
let input: Vec<&[i32]> = vec![&[1, 2, 3], &[4, 5], &[7]];
let expected = "┌───┬───┬───\n\
a b c \n\
\n\
1 2 3 \n\
4 5 \n\
7 \n\
\n";
let input: Vec<&[&str]> = vec![&["1", "2", "😞"], &["4", "5"], &["7"]];
let expected = "┌───┬───┬───\n\
a b c \n\
\n\
1 2 😞 \n\
4 5 \n\
7 \n\
\n";
assert_eq!(expected, config.format(input));
}