helper

Crates.iohelper
lib.rshelper
version4.0.0
created_at2019-06-08 15:33:56.668309+00
updated_at2025-07-06 13:00:07.464553+00
descriptionA library provided some useful proc macros for Rust.
homepage
repositoryhttps://github.com/jmjoy/helper
max_upload_size
id139831
size48,626
jmjoy (jmjoy)

documentation

README

Helper

Rust Crate API

A library provided some useful proc macros for Rust.

Macros

  • control flow

    • either: Ternary operator in many C-like languages.
  • collections

    • btmap: Create std::collections::BTreeMap from list of key-value pairs.
    • btset: Create a std::collections::BTreeSet from a list of elements.
    • hmap: Create std::collections::HashMap from list of key-value pairs.
    • hset: Create a std::collections::HashSet from a list of elements.
  • type conversion

    • u8: Convert expression to u8 type.
    • u16: Convert expression to u16 type.
    • u32: Convert expression to u32 type.
    • u64: Convert expression to u64 type.
    • u128: Convert expression to u128 type.
    • usize: Convert expression to usize type.
    • i8: Convert expression to i8 type.
    • i16: Convert expression to i16 type.
    • i32: Convert expression to i32 type.
    • i64: Convert expression to i64 type.
    • i128: Convert expression to i128 type.
    • isize: Convert expression to isize type.
    • f32: Convert expression to f32 type.
    • f64: Convert expression to f64 type.
    • char: Convert expression to char type.
    • bool: Convert expression to bool type.

Examples

Type Conversion

use helper::*;

let x = 42i32;
let y = u8!(x);      // Convert to u8
let z = f64!(x);     // Convert to f64

// Support complex expressions
let result = u64!(x + 10 * 2);

// Support chained conversions
let chained = f64!(i64!(u32!(x)));

// Character conversion
let ascii_value = 65u8;
let character = char!(ascii_value);  // 'A'

Collections

use helper::*;

// HashMap
let map = hmap! {
    "key1": "value1",
    "key2": "value2",
};

// HashSet
let set = hset! { 1, 2, 3 };

// BTreeMap
let btree_map = btmap! {
    "a": 1,
    "b": 2,
};

// BTreeSet
let btree_set = btset! { 1, 2, 3 };

License

MulanPSL-2.0

Commit count: 27

cargo fmt