use nestable::{Table, styles};
use std::thread::sleep;
use std::time::Duration;
fn cls() {
print!("\x1b[2J\x1b[H");
}
fn main() {
for style in vec![
styles::ASCII_BORDER,
styles::ASCII_NO_BORDER,
styles::ASCII_NO_ROW_SEPARATOR,
styles::GLYPHS_SQUARE,
styles::GLYPHS_ROUNDED,
styles::GLYPHS_NO_BORDER,
styles::GLYPHS_NO_ROW_SEPARATOR,
styles::SPACE,
] {
cls();
#[rustfmt::skip]
let table = Table::new([
["Language", "Text"],
["English", "nestable\nrendering tables\nacross multiple lines"],
["Japanese", "ネスタブル\n複数行にわたる\nテーブル表示 🙂"],
["Chinese\n(Simplified)", "可嵌套表格\n支持多行文本\n终端显示"],
["Korean", "중첩 가능한 테이블\n여러 줄 텍스트\n터미널 출력"],
["Persian", "جداول تو در تو\nمتن چند خطی\nخروجی ترمینال"],
["Sanskrit", "नेस्टेबल टेबल्स\nबहुपङ्क्तिः पाठः\nटर्मिनल आउटपुट"],
]);
let cwd = std::env::current_dir()
.map(|p| p.to_string_lossy().to_string())
.unwrap_or_else(|_| "<unknown>".to_string());
let user = std::env::var("USER")
.map(|p| p.to_string())
.unwrap_or_else(|_| "<unknown>".to_string());
let system = Table::new([
["Property", "Value"],
["OS", std::env::consts::OS],
["Architecture", std::env::consts::ARCH],
["Directory", &cwd],
["User", &user],
]);
#[rustfmt::skip]
let nested = Table::with_style( &style, true, [
vec!["System Details", "Unicode Demo"],
vec![&system.to_string(), &table.to_string()],
]);
print!("{}", nested);
sleep(Duration::from_secs(3));
}
}