A rust macro that will construct an instance of any collection that implements FromIterator.
toml
[dependencies]
sac = "0.2"
```rust,skt-example-empty
extern crate sac;
fn main() { let vec: Vec<_> = sac![1, 2, 3, 4]; assert_eq!(vec, vec![1, 2, 3, 4]); } ```
No type annotations are needed if the compiler can infer the types:
```rust,skt-example
struct VecWrapper(Vec
let container = VecWrapper(sac![1, 2, 3, 4]); ```
Trailing commas are also supported: ```rust,skt-example let vec: Vec<_> = sac![ 1, 2, 3, 4, ];
assert_eq!(vec, vec![1, 2, 3, 4]); ```
The macro can also construct maps (e.g. HashMap) with struct-like syntax: ```rust,skt-example let mapwithsyntax_sugar: HashMap<_, _> = sac! { "foo": "bar", "marco": "polo", };
let mapwithoutsyntax_sugar: HashMap<_, _> = sac! [ ("foo", "bar"), ("marco", "polo"), ];
asserteq!(mapwithsyntaxsugar, mapwithoutsyntax_sugar); ```
Variables can be used as keys and values: ```rust,skt-example let key = "foo"; let value = "bar";
let map: HashMap<_, _> = sac! { key: value, };
assert_eq!(map, sac! { "foo": "bar" }); ```
To use expressions as keys, surround them with parentheses or braces: ```rust,skt-example let map: HashMap<_, _> = sac! { (1 + 1): "two", {2i32.pow(2)}: "four", };
assert_eq!(map, sac! { 2: "two", 4: "four" }); ```