Function vectorize_struct::vectorize_struct[][src]

pub fn vectorize_struct(types: TokenStream, input: TokenStream) -> TokenStream

Attribute to allow iterating over Trait Objects of every field of a Struct that implements a specific trait.

Example

This example is not tested
struct NoDisplay{}

#[vectorize_struct(std::fmt::Display)]
struct ExampleStruct {
   i : i32,
   nd : NoDisplay
}

fn doc_example() {
    use vectorized_ExampleStruct::{Vectorize,Fields};

    let es = ExampleStruct{
        nd: NoDisplay{},
        i: 6792,
    };

    for (name, field) in es.vectorize() as Vec<(Fields, Option<&Display>)> {
        if let Some(field) = field {
            println!("{:?} can display: {}", name, field);
        }
    }
}