#utilities #stupid #hash-map #collection #map-value #predule

stupid_utils

A crate that provides some simple and maybe stupid or useful tools

8 releases

new 0.2.6 May 11, 2024
0.2.5 May 10, 2024
0.2.4 Sep 28, 2023
0.2.3 Aug 3, 2023
0.1.1 Aug 3, 2023

#736 in Science

Download history 1/week @ 2024-02-18 8/week @ 2024-02-25 1/week @ 2024-03-03 9/week @ 2024-03-10 10/week @ 2024-03-17 19/week @ 2024-03-24 22/week @ 2024-03-31 2/week @ 2024-04-07 3/week @ 2024-04-21 1/week @ 2024-04-28 268/week @ 2024-05-05

272 downloads per month
Used in computercraft_websocket_c…

MIT/Apache

43KB
1K SLoC

Description

A crate that provides some simple and maybe stupid or useful tools

Example

    use std::collections::HashMap;
    use stupid_utils::predule::*;

    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);
   

No runtime deps