# Macroland
-----
Macroland is a simple crate with macros to create various Rust types using
syntactic sugar. Some of these types offered I do not know about myself, but
I have done my best to create a macro for them here. If there are any issues,
feel free to report them to my github.
To name a few: `hashmap!`, `btreeset!`, or `arclock!`
## Examples
- See more on [docs.rs](https://docs.rs/macroland/latest/macroland/)
-----
### `hashmap!`
#### Example
```
// I've tried my best to put things where they belong.
use macroland::hashmap;
let my_hashmap = hashmap!(
"Key 1" => "Value 1",
"Key 2" => "Value 2",
"Key 3" => "Value 3",
);
// Alternatively, you can create an "uninitialized" version.
let mut my_hashmap = hashmap!(&str, usize);
my_hashmap.insert("Hello!", 100);
```
### `btreemap!`
#### Example
```
// I've used this before, but I am not entirely sure about the difference with it and HashMaps!
use macroland::btreemap;
let my_btreemap = btreemap!(
"Greetings!" => true,
"How are you?" => false,
"I'm good too." => false,
);
// Like the rest.
let mut my_btreemap = btreemap!(&str, bool);
my_btreemap.insert("Hewwo!", false);
```
### `arctex!`
#### Example
```
// Time to make creating an Arc<Mutex<T>> easier for everyone who has been looking for this!
use macroland::arctex;
let my_arctex = arctex!(vec!["Pizza", "Ice Cream", "Celery"])
// All functionality of an Arc<Mutex<T>> is maintained.
println!("{}", my_arctex.lock().unwrap());
```
### `cell!`
#### Example
```
// Welcome to the wonderful world of celling!
use macroland::cell;
let my_cell = cell!(10);
// Everything works!
my_cell.set(20)
println!("{}", my_cell.get());
```