Crates.io | stupid_utils |
lib.rs | stupid_utils |
version | 0.4.1 |
source | src |
created_at | 2023-08-03 06:33:48.695893 |
updated_at | 2024-09-14 03:23:47.338296 |
description | A crate that provides some simple and maybe stupid or useful tools |
homepage | |
repository | https://github.com/wefcdse/stupid_utils |
max_upload_size | |
id | 933438 |
size | 63,054 |
A crate that provides some simple and maybe stupid or useful tools
Most of the features are zero-cost, all non-zero-cost feature can be disabled by disable_non_zerocost
feature flag.
All dependencies and build script are optional, so the code can be simply copy and paste to another project to use.
use std::collections::HashMap;
use stupid_utils::prelude::*;
let a = HashMap::new().mutable_init(|m| {
m.insert(1, 4.box_up());
m.insert(
2,
Some(9)
.map_value(|v| match v {
Some(v) => v,
None => 3,
})
.box_up(),
);
let cond = true;
m.insert(cond.select(3, 4), select(cond, 3, 4).box_up());
});
let b = {
let mut m = HashMap::new();
m.insert(1, Box::new(4));
m.insert(
2,
Box::new({
let v = Some(9);
match v {
Some(v) => v,
None => 3,
}
}),
);
let cond = true;
m.insert(if cond { 3 } else { 4 }, Box::new(if cond { 3 } else { 4 }));
m
};
assert_eq!(a, b);