pub trait Namespace {
type Member: 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<&Self::Member>;
fn members(&self) -> impl Iterator<Item = &Self::Member>;
fn members_mut(&mut self) -> impl Iterator<Item = &mut Self::Member>;
fn member_names(&self) -> impl Iterator<Item = &Identifier>;
fn add_to_members(&mut self, value: Self::Member) -> Option<Self::Member>;
fn extend_members<I>(&mut self, extension: I)
where I: IntoIterator<Item = Self::Member>;
}
Expand description
This trait is implemented by types that have uniquely named members such as modules and structures.
Required Associated Types§
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<&Self::Member>
fn member(&self, name: &Identifier) -> Option<&Self::Member>
Return the member with the name name
, if present.
sourcefn members(&self) -> impl Iterator<Item = &Self::Member>
fn members(&self) -> impl Iterator<Item = &Self::Member>
Returns an iterator over all members in the namespace.
sourcefn members_mut(&mut self) -> impl Iterator<Item = &mut Self::Member>
fn members_mut(&mut self) -> impl Iterator<Item = &mut Self::Member>
Returns an iterator over mutable members in the namespace.
sourcefn member_names(&self) -> impl Iterator<Item = &Identifier>
fn member_names(&self) -> impl Iterator<Item = &Identifier>
Returns an iterator over the names of namespace members.
sourcefn add_to_members(&mut self, value: Self::Member) -> Option<Self::Member>
fn add_to_members(&mut self, value: Self::Member) -> Option<Self::Member>
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 = Self::Member>,
fn extend_members<I>(&mut self, extension: I)where
I: IntoIterator<Item = Self::Member>,
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.