Trait glib::object::Cast
[−]
[src]
pub trait Cast: IsA<Object> { fn upcast<T>(self) -> T where T: StaticType + UnsafeFrom<ObjectRef> + Wrapper, Self: IsA<T> { ... } fn downcast<T>(self) -> Result<T, Self> where Self: Sized + Downcast<T> { ... } fn is<T>(&self) -> bool where Self: Downcast<T> { ... } }
Upcasting and downcasting support.
Provides conversions up and down the class hierarchy tree.
Provided Methods
fn upcast<T>(self) -> T where T: StaticType + UnsafeFrom<ObjectRef> + Wrapper, Self: IsA<T>
Upcasts an object to a superclass or interface T.
Example
let button = gtk::Button::new(); let widget = button.upcast::<gtk::Widget>();
fn downcast<T>(self) -> Result<T, Self> where Self: Sized + Downcast<T>
Tries to downcast to a subclass or interface implementor T.
Returns Ok(T) if the object is an instance of T and Err(self)
otherwise.
Example
let button = gtk::Button::new(); let widget = button.upcast::<gtk::Widget>(); assert!(widget.downcast::<gtk::Button>().is_ok());
fn is<T>(&self) -> bool where Self: Downcast<T>
Returns true if the object is an instance of (can be downcast to) T.