#list #vec #collection #dart #localization #svec

svec_macro

Dart风格列表在Rust中的实用工具

1 个不稳定版本

0.1.0 2019年11月8日

#34 in #dart


svec 中使用

MIT 许可证

5KB
88

svec

Svec 允许您在Rust中创建类似Dart的美观列表,这些列表既易于阅读又简洁。

如果您在Rust中创建事物列表,您可能正在使用 vec

// a list
let row = vec![
	Elem::IconButton("hamburger"),
	Elem::Space,
	Elem::IconButton("info"),
	Elem::IconButton("profile")
];

svec 允许您执行所有与 vec 相同的操作,但它还添加了 "集合if" 和 "集合for"。

// a list with svec
let row = svec![
	Elem::IconButton("hamburger"),
	Elem::Space,
	Elem::IconButton("info"),
	Elem::IconButton("profile"),
	if isLiteVersion { Elem::IconButton("store") }
];

这里是一个 "集合for" 的例子。

// a list with vec + svec
let row = vec![
	Elem::IconButton("hamburger"),
	Elem::Space,
	Elem::IconButton("info"),
	Elem::IconButton("profile"),
	Elem::MenuBar(svec![
		for friend in friends.take(3) { Elem::MenuItem(friend) },
		Elem::MenuItem("All friends"),
		Elem::MenuItem("All people"),
	])
];

在项目中使用 svec 非常简单。

  1. svec = 0.1.0 添加到您的 Cargo.toml
  2. 添加 use svec::*

依赖项

~1.5MB
~35K SLoC