pub trait MenuModelExt: 'static {
// Required methods
fn item_attribute_value(
&self,
item_index: i32,
attribute: &str,
expected_type: Option<&VariantTy>
) -> Option<Variant>;
fn item_link(&self, item_index: i32, link: &str) -> Option<MenuModel>;
fn n_items(&self) -> i32;
fn is_mutable(&self) -> bool;
fn items_changed(&self, position: i32, removed: i32, added: i32);
fn iterate_item_attributes(&self, item_index: i32) -> MenuAttributeIter;
fn iterate_item_links(&self, item_index: i32) -> MenuLinkIter;
fn connect_items_changed<F: Fn(&Self, i32, i32, i32) + 'static>(
&self,
f: F
) -> SignalHandlerId;
}