1 unstable release

0.1.0 Nov 8, 2019

#573 in Template engine

46 downloads per month

MIT license

5KB

svec

Svec lets you create beautiful Dart-like lists in Rust that are both readable and concise.

If you're making a list of things in Rust, you're probably using vec.

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

svec lets you do all the things you can do with vec, but it also adds "collection if" and "collection for".

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

Here's a "collection 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"),
	])
];

Using svec in your project is super easy.

  1. Add svec = 0.1.0 to your Cargo.toml.
  2. Add use svec::*.

Dependencies

~1.5MB
~35K SLoC