5 releases
0.1.5 | Jul 16, 2023 |
---|---|
0.1.4 | Jul 15, 2023 |
0.1.3 | Jun 20, 2023 |
#114 in #rest
18KB
290 lines
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
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());