Skip to content

calebwin/svec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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::*.

About

quick little macro for beautiful Dart-like lists in Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages