Trait shred::CastFrom [] [src]

pub trait CastFrom<T> {
    fn cast(t: &T) -> &Self;
fn cast_mut(t: &mut T) -> &mut Self; }

Helper trait for the MetaTable. This trait is required to be implemented for a trait to be compatible with the meta table.

Examples

use shred::CastFrom;

trait Foo {
    fn foo1(&self);
    fn foo2(&mut self, x: i32) -> i32;
}

impl<T> CastFrom<T> for Foo
where
    T: Foo + 'static,
{
    fn cast(t: &T) -> &(Foo + 'static) {
        t
    }

    fn cast_mut(t: &mut T) -> &mut (Foo + 'static) {
        t
    }
}

Required Methods

Casts an immutable T reference to a trait object.

Casts a mutable T reference to a trait object.

Implementors