1 个不稳定版本
0.1.0 | 2019年10月28日 |
---|
#12 in #literal
10KB
110 行
derive_lit
你正在开发一个数据结构吗?
struct GroceryList {
num_items: usize,
item_ids: Vec<usize>
}
并且你的数据结构可以让你向其中添加数据?
impl GroceryList {
fn new() -> Self {
Self {
num_items: 0,
item_ids: vec![]
}
}
fn push(&mut self, item_id: usize) {
self.item_ids.push(item_id);
}
}
如果你可以这样做,那岂不是很好?
fn main() {
let groceries = grocery_list![
0,
9,
8,
4
];
// do something intersting with your GroceryList...
}
如果你可以只...
use derive_lit::VecLit;
#[derive(VecLit)]
struct GroceryList {
num_items: usize,
item_ids: Vec<usize>
}
你可以!使用 derive_lit::*
。只需一个 derive_lit = "0.1.0"
就可以了!
lib.rs
:
这是一个用于自动生成宏的crate,这些宏可以展开为你的数据结构的字面量值。以下是一个示例。
use derive_lit::VecLit;
#[derive(VecLit)]
struct GroceryList {
num_items: usize,
item_ids: Vec<usize>
}
impl GroceryList {
fn new() -> Self {
Self {
num_items: 0,
item_ids: vec![]
}
}
fn push(&mut self, item_id: usize) {
self.item_ids.push(item_id);
}
}
fn main() {
let groceries = grocery_list![
0,
9,
8,
5
];
// do something intersting with your GroceryList...
}
依赖关系
~2MB
~44K SLoC