pub trait Attribute { type Repr: ?Sized; fn new(name: &'static str) -> AttributeType; fn pack(data: &Self::Repr) -> Vec<u8>; }