1 个不稳定版本

0.1.0 2019年10月28日

#12 in #literal

MIT 许可证

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