struct-metadata 1.3.0

Macros for attaching metadata to structs.
Documentation
use struct_metadata::{Described, Kind};


#[allow(dead_code)]
#[derive(serde::Deserialize, Described)]
struct HasAlias {
    single_name: u64,
    #[serde(alias="other_name")]
    two_names: u64,
    #[serde(alias="other_name1", alias="other_name2")]
    three_names: u64,
}


#[test]
fn default_defined() {
    let data = HasAlias::metadata();
    let Kind::Struct{ name, children} = data.kind else { panic!() };
    assert_eq!(name, "HasAlias");
    
    assert_eq!(children[0].label, "single_name");
    assert_eq!(children[0].aliases, &["single_name"]);

    assert_eq!(children[1].label, "two_names");
    assert_eq!(children[1].aliases, &["two_names", "other_name"]);

    assert_eq!(children[2].label, "three_names");
    assert_eq!(children[2].aliases, &["three_names", "other_name1", "other_name2"]);
}