Crate small_iter_fields

source ·
Expand description

§Example

use std::collections::HashMap;
use small_iter_fields::{IterFields, LenFields};
 
#[derive(IterFields, LenFields, Hash, PartialEq, Eq)]
enum Stage {
    Start,
    Middle,
    End,
}

let mut map: HashMap<Stage, Vec<i32>> = HashMap::with_capacity(Stage::len());
assert!(map.capacity() >= 3);
 
for stage in Stage::iter_fields() {
    map.insert(stage, Vec::new());
};
 
assert!(map.contains_key(&Stage::Start));
assert!(map.contains_key(&Stage::Middle));
assert!(map.contains_key(&Stage::End));

§Enums must have no data associated with it

use small_iter_fields::IterFields;
 
#[derive(IterFields)]
enum DataEnum {
    Data(bool),
}

Derive Macros§

  • Iterate over the fields of an enum.
  • Get how many variants in an enum as usize.