[][src]Macro traitcast::traitcast

macro_rules! traitcast {
    (struct $type:ty) => { ... };
    (struct $type:ty : $($trait:ident),+) => { ... };
    (impl $trait:ident for $source:ty) => { ... };
    ($source:ty => $target:ty) => { ... };
}

traitcast!(struct Bar) registers a struct to allow it to be cast into.

traitcast!(impl Foo for Bar) allows casting into dynamic Foo trait objects, from objects whose concrete type is Bar.

traitcast!(struct Bar: Foo1, Foo2) registers a struct to allow it to be cast into, and further allows casting into dynamic Foo1 or Foo2 trait objects, from objects whose concrete type is Bar.