vectorize_struct adds an procedural macro attribute that makes it possible to iterate over Trait Objects of every field of a Struct that implements a specific trait.

It only works on nightly and requires #![feature(specialization)].

Example

```rust

![feature(specialization)]

extern crate vectorizestruct; use vectorizestruct::vectorize_struct;

use std::fmt::{Debug, Display};

[vectorize_struct(std::fmt::Display, Debug)]

struct Struct { i: i32, u: u32, b: bool, s: String, buui: (bool, u32, u8, i16), s2: String, nd: NoDisplay, }

struct NoDisplay {}

fn main() { use vectorized_Struct::*;

let s = Struct {
    i: -12,
    u: 61,
    b: false,
    s: String::from("asd"),
    buui: (true, 1, 5, -2),
    s2: String::from("fgh"),
    nd: NoDisplay {},
};

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

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

} ```