mirror of
https://gitlab.com/arnekeller/ascii-table.git
synced 2024-12-04 21:49:08 +00:00
Actually unicode_width is more suitable
This commit is contained in:
parent
73cc36ce71
commit
2d485d6b34
@ -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"
|
||||||
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
src/test.rs
16
src/test.rs
@ -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));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user