4个版本
0.1.3 | 2019年7月29日 |
---|---|
0.1.2 | 2019年7月26日 |
0.1.1 | 2019年7月25日 |
0.1.0 | 2019年7月25日 |
在 命令行界面 中排名 #761
每月下载量 576 次
10KB
tablefy
查看更新请参阅 变更日志.
use tablefy_derive::Tablefy;
use tablefy::Tablefy;
// This struct now implements the tablefy trait
#[derive(Tablefy)]
pub struct Basic {
#[header(name = "Hmm... Nice Header")]
pub something: String,
#[header(name = "We Have Here!")]
pub otherthing: i16,
#[header(name = "Don't You Agree?")]
pub newthing: i8,
pub maybe: Option<String>
}
fn main() {
// Creating a vector of structs...
let basic = vec![Basic {
something: String::from("a"),
otherthing: 2,
newthing: 3,
maybe: None
}, Basic {
something: String::from("b"),
otherthing: 3,
newthing: 4,
maybe: Some(String::from("x"))
}, Basic {
something: String::from("c"),
otherthing: 5,
newthing: 8,
maybe: None
}];
// Turning them into a Table struct...
let table = tablefy::into_table(&basic);
// Or if you just want the string...
println!("{}", tablefy::into_string(&basic));
}
+--------------------+---------------+------------------+-------+
| Hmm... Nice Header | We Have Here! | Don't You Agree? | maybe |
+====================+===============+==================+=======+
| a | 2 | 3 | |
+--------------------+---------------+------------------+-------+
| b | 3 | 4 | x |
+--------------------+---------------+------------------+-------+
| c | 5 | 8 | |
+--------------------+---------------+------------------+-------+
此crate通过指定一个 Tablefy
特征作为 prettytable
的扩展,将任何(成员实现Display的)结构体转换为 Table
对象。
因此,这意味着 prettytable
是一个依赖项。不添加 prettytable
,您将无法使用此crate。
如果您想获取此crate的全部功能(带proc_macro),请务必查看 tablefy_derive!.
未来更新
目前,我考虑对这个crate进行两项主要改进。
字段可以被标记来自定义表头名称。- 现在已实现!请确保更新
tablefy_derive
.
- 现在已实现!请确保更新
- 字段可以被标记为使用
{:?}
和{:#?}
而不是{}
来打印。
授权协议:MPL-2.0
依赖项
~2–3MB
~35K SLoC