1 unstable release

0.1.0 Feb 4, 2024

#123 in #maps


Used in context-mapper

MIT and GPL-3.0-only

31KB
692 lines

Context Mapper

Single rust macro for generating different maps

Example

#[derive(ContextMapper)]
#[context_mapper(
    impl(
        context = info::general
        converter = MyConv::to_info,
        type = info::Info,
        fn = general_info
        vis = pub(crate)
    ),
    function(
        context = info::all
        converter = MyConv::to_info,
        type = info::Info,
        fn = all_info
    ),

)]
struct Person {
    name: String,
    address: info::Address,
    age: usize,

    /// Let's hide it for the geneal info, but show for the rest
    #[context_attribute(context(name=info::general, skip))]
    is_a_reptile: bool
}

//

let person = Person {
    //
};

person.general_info();
all_info(&person);

Dependencies

~0.7–1.2MB
~23K SLoC