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

View File

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