svec

Crates.iosvec
lib.rssvec
version0.1.0
sourcesrc
created_at2019-11-08 19:07:48.385306
updated_at2019-11-08 19:07:48.385306
descriptionA utility for Dart-style list in Rust
homepagehttps://www.github.com/calebwin/svec
repositoryhttps://www.github.com/calebwin/svec
max_upload_size
id179455
size3,757
caleb winston (calebwin)

documentation

https://docs.rs/svec

README

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::*.
Commit count: 0

cargo fmt