Trait glib::object::CastNone

source ·
pub trait CastNone: Sized {
    type Inner;

    // Required methods
    fn and_downcast<T: ObjectType>(self) -> Option<T>
       where Self::Inner: MayDowncastTo<T>;
    fn and_downcast_ref<T: ObjectType>(&self) -> Option<&T>
       where Self::Inner: MayDowncastTo<T>;
    fn and_upcast<T: ObjectType>(self) -> Option<T>
       where Self::Inner: IsA<T>;
    fn and_upcast_ref<T: ObjectType>(&self) -> Option<&T>
       where Self::Inner: IsA<T>;
    fn and_dynamic_cast<T: ObjectType>(self) -> Result<T, Self>;
    fn and_dynamic_cast_ref<T: ObjectType>(&self) -> Option<&T>;
}
Expand description

Convenience trait mirroring Cast, implemented on Option<Object> types.

§Warning

Inevitably this trait will discard information about a downcast failure: you don’t know if the object was not of the expected type, or if it was None. If you need to handle the downcast error, use Cast over a glib::Object.

§Example

let widget: Option<Widget> = list_item.child();

// Without using `CastNone`
let label = widget.unwrap().downcast::<gtk::Label>().unwrap();

// Using `CastNone` we can avoid the first `unwrap()` call
let label = widget.and_downcast::<gtk::Label>().unwrap();

Required Associated Types§

Required Methods§

source

fn and_downcast<T: ObjectType>(self) -> Option<T>
where Self::Inner: MayDowncastTo<T>,

source

fn and_downcast_ref<T: ObjectType>(&self) -> Option<&T>
where Self::Inner: MayDowncastTo<T>,

source

fn and_upcast<T: ObjectType>(self) -> Option<T>
where Self::Inner: IsA<T>,

source

fn and_upcast_ref<T: ObjectType>(&self) -> Option<&T>
where Self::Inner: IsA<T>,

source

fn and_dynamic_cast<T: ObjectType>(self) -> Result<T, Self>

source

fn and_dynamic_cast_ref<T: ObjectType>(&self) -> Option<&T>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<I: ObjectType + Sized> CastNone for Option<I>

§

type Inner = I

source§

fn and_downcast<T: ObjectType>(self) -> Option<T>
where Self::Inner: MayDowncastTo<T>,

source§

fn and_downcast_ref<T: ObjectType>(&self) -> Option<&T>
where Self::Inner: MayDowncastTo<T>,

source§

fn and_upcast<T: ObjectType>(self) -> Option<T>
where Self::Inner: IsA<T>,

source§

fn and_upcast_ref<T: ObjectType>(&self) -> Option<&T>
where Self::Inner: IsA<T>,

source§

fn and_dynamic_cast<T: ObjectType>(self) -> Result<T, Self>

source§

fn and_dynamic_cast_ref<T: ObjectType>(&self) -> Option<&T>

Implementors§