7 个版本
0.2.1 | 2023年4月23日 |
---|---|
0.2.0 | 2023年4月23日 |
0.1.5 | 2023年4月17日 |
0.1.4 | 2023年3月21日 |
0.1.1 | 2023年2月1日 |
#422 in 命令行界面
32KB
437 行
Rct
为 Rust 🦀 项目提供 CLI 表格输出。
安装
从命令行添加。
cargo install rct
或将其添加到您的 Cargo.toml 文件中。
[dependencies]
rct = "0.2.1"
# Or add from github main branch.
rct = { git = "https://github.com/disco07/rct.git", branch = "main" }
用法
基本用法
fn main() {
use rct::cell::ICell;
use rct::table::Table;
let mut table = Table::new();
table
.add_header(vec![
"ID".cell(),
"Title".cell(),
"is_enabled".cell(),
"price".cell(),
"currency".cell(),
"description".cell(),
"created_at".cell(),
])
.add_row(vec![
1.cell(),
"Harry \nPotter".cell(),
"1".cell(),
"14.87".cell(),
"€".cell(),
"Harry Potter".cell(),
"2001-12-05 22:05:20".cell(),
])
.add_row(vec![
2.cell(),
"Spider-man".cell(),
"0".cell(),
"18.80".cell(),
"€".cell(),
"Spider-man, No Way Home.".cell(),
"2018-12-12 09:04:50".cell(),
])
.add_row(vec![
3.cell(),
"Avenger".cell(),
"1".cell(),
"18.50".cell(),
"€".cell(),
"Avenger".cell(),
"2017-10-12 10:34:39".cell(),
]);
table.view()
}
自定义表格(添加颜色)
use rct::cell::ICell;
use rct::styles::color::{Colorizer, Font};
use rct::table::Table;
fn main() {
let mut table = Table::new();
table
.add_header(vec![
"ID".cell(),
"Title".cell(),
"is_enabled".cell(),
"price".cell(),
"currency".cell(),
"description".cell(),
"created_at".cell(),
])
.add_row(vec![
1.cell(),
"Harry \nPotter".cell().color("#ff0000"),
"1".cell(),
"14.87".cell(),
"€".cell(),
"Harry Potter".cell(),
"2001-12-05 22:05:20"
.cell()
.bg("#0000ff")
.font(Font::Blinking),
])
.add_row(vec![
2.cell(),
"Spider-man".cell().font(Font::Italic),
"0".cell(),
"18.80".cell().font(Font::Bold),
"€".cell(),
"Spider-man, No Way Home.".cell().font(Font::Strikethrough),
"2018-12-12 09:04:50".cell(),
])
.add_row(vec![
3.cell(),
"Avenger".cell().color("#00ff00"),
"1".cell(),
"18.50".cell(),
"€".cell(),
"Avenger".cell(),
"2017-10-12 10:34:39".cell(),
]);
table.view();
}
派生宏
#[derive(ToTable)] 也可以用于将结构体的 Vec 或切片打印为表格。
use rct::styles::color::{Colorizer, Font};
use rct::ToTable;
#[derive(ToTable)]
struct Movies<T, S> {
#[table(rename = "ID", color = "#00ff00")]
id: T,
#[table(rename = "Title", bg = "#ff0000")]
title: S,
#[table(rename = "Price €", font = "Font::Bold")]
price: f32,
}
fn main() {
let movies = [
Movies {
id: 1,
title: "Harry \nPotter".to_string(),
price: 14.87,
},
Movies {
id: 2,
title: "Spider-man".to_string(),
price: 18.80,
},
];
let table = movies.into_iter().to_table();
println!("{}", table);
}
字段属性
贡献 🤝
欢迎贡献、问题和功能请求!
请随意查看问题页面。
📝 许可证
依赖
~2.6–4MB
~61K SLoC