https://github.com/calebwin/svec
quick little macro for beautiful Dart-like lists in Rust
https://github.com/calebwin/svec
dart list rust vec
Last synced: 5 months ago
JSON representation
quick little macro for beautiful Dart-like lists in Rust
- Host: GitHub
- URL: https://github.com/calebwin/svec
- Owner: calebwin
- Created: 2019-11-08T18:57:55.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-08T19:08:51.000Z (about 6 years ago)
- Last Synced: 2025-06-29T05:18:33.951Z (6 months ago)
- Topics: dart, list, rust, vec
- Language: Rust
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# `svec`
[](https://crates.io/crates/svec)
[](https://docs.rs/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`.
```rust
// 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".
```rust
// 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".
```rust
// 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::*`.