visit-rs 0.1.5

A generic visitor pattern library for Rust
Documentation
use visit_rs::*;

#[derive(VisitFields)]
struct NamedStruct {
    field1: String,
    field2: i32,
    field3: bool,
}

#[derive(VisitFields)]
struct TupleStruct(String, i32, bool);

fn main() {
    println!("NamedStruct:");
    println!("  IS_NAMED: {}", NamedStruct::IS_NAMED);
    println!("  FIELD_COUNT: {}", NamedStruct::FIELD_COUNT);

    println!("\nTupleStruct:");
    println!("  IS_NAMED: {}", TupleStruct::IS_NAMED);
    println!("  FIELD_COUNT: {}", TupleStruct::FIELD_COUNT);

    assert!(NamedStruct::IS_NAMED);
    assert_eq!(NamedStruct::FIELD_COUNT, 3);

    assert!(!TupleStruct::IS_NAMED);
    assert_eq!(TupleStruct::FIELD_COUNT, 3);

    println!("\nStructInfo trait works correctly!");
}