use std::cell::RefCell; use std::rc::Rc; #[derive(Clone, Debug, Default, glib::GBoxed)] #[gboxed(type_name = "BoxedSearchResult")] pub struct BoxedSearchResult(pub Option); pub fn icon_source(icon: &Rc>, source: &Option) { match source { Some(pop_launcher::IconSource::Name(name)) => { icon.borrow().set_from_icon_name(Some(name)); } Some(pop_launcher::IconSource::Mime(content_type)) => { icon.borrow() .set_from_gicon(&gio::content_type_get_icon(content_type)); } _ => { icon.borrow().set_from_icon_name(None); } } }