pub trait Namespace<T>where
T: HasName,{
// Required methods
fn has_members(&self) -> bool;
fn member_count(&self) -> usize;
fn contains_member(&self, name: &Identifier) -> bool;
fn member(&self, name: &Identifier) -> Option<&T>;
fn members(&self) -> Box<dyn Iterator<Item = &T> + '_>;
fn members_mut(&mut self) -> Box<dyn Iterator<Item = &mut T> + '_>;
fn member_names(&self) -> Box<dyn Iterator<Item = &Identifier> + '_>;
fn add_to_members(&mut self, value: T) -> Option<T>;
fn extend_members<I>(&mut self, extension: I)
where I: IntoIterator<Item = T>;
}
Required Methods§
sourcefn has_members(&self) -> bool
fn has_members(&self) -> bool
Returns true
of the namespace contains any members, else false
.
sourcefn member_count(&self) -> usize
fn member_count(&self) -> usize
Returns the number of members in the namespace.
sourcefn contains_member(&self, name: &Identifier) -> bool
fn contains_member(&self, name: &Identifier) -> bool
Returns true
if the namespace contains a member named name
, else false
.
sourcefn member(&self, name: &Identifier) -> Option<&T>
fn member(&self, name: &Identifier) -> Option<&T>
Return the member with the name name
, if present.
sourcefn members(&self) -> Box<dyn Iterator<Item = &T> + '_>
fn members(&self) -> Box<dyn Iterator<Item = &T> + '_>
Returns an iterator over all members in the namespace.
sourcefn members_mut(&mut self) -> Box<dyn Iterator<Item = &mut T> + '_>
fn members_mut(&mut self) -> Box<dyn Iterator<Item = &mut T> + '_>
Returns an iterator over mutable members in the namespace.
sourcefn member_names(&self) -> Box<dyn Iterator<Item = &Identifier> + '_>
fn member_names(&self) -> Box<dyn Iterator<Item = &Identifier> + '_>
Returns an iterator over the names of namespace members.
sourcefn add_to_members(&mut self, value: T) -> Option<T>
fn add_to_members(&mut self, value: T) -> Option<T>
Add a member to the namespace. If a member already existed with the same name it will be returned.
sourcefn extend_members<I>(&mut self, extension: I)where
I: IntoIterator<Item = T>,
fn extend_members<I>(&mut self, extension: I)where
I: IntoIterator<Item = T>,
Add the members of the extension to the namespace. Any existing members with the same names will be replaced.
Object Safety§
This trait is not object safe.