pub struct EnrichedMembers {
pub members: OrderedHashMap<SmolStr, (Member, usize)>,
pub deref_functions: Vec<(FunctionId, Mutability)>,
pub exploration_tail: Option<ExprId>,
}
Expand description
The enriched members of a type, including direct members of structs, as well as members of
targets of Deref
and DerefMut
of the type.
Fields§
§members: OrderedHashMap<SmolStr, (Member, usize)>
A map from member names to their semantic representation and the number of deref operations needed to access them.
deref_functions: Vec<(FunctionId, Mutability)>
The sequence of deref functions needed to access the members.
exploration_tail: Option<ExprId>
The tail of deref chain explored so far. The search for additional members will continue from this point. Useful for partial computation of enriching members where a member was already previously found.
Implementations§
source§impl EnrichedMembers
impl EnrichedMembers
sourcepub fn get_member(&self, name: &str) -> Option<EnrichedTypeMemberAccess>
pub fn get_member(&self, name: &str) -> Option<EnrichedTypeMemberAccess>
Returns EnrichedTypeMemberAccess
for a single member if exists.
Trait Implementations§
source§impl Clone for EnrichedMembers
impl Clone for EnrichedMembers
source§fn clone(&self) -> EnrichedMembers
fn clone(&self) -> EnrichedMembers
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for EnrichedMembers
impl Debug for EnrichedMembers
source§impl<'a, T: ?Sized + Upcast<dyn SemanticGroup + 'static>> DebugWithDb<T> for EnrichedMembers
impl<'a, T: ?Sized + Upcast<dyn SemanticGroup + 'static>> DebugWithDb<T> for EnrichedMembers
source§impl PartialEq for EnrichedMembers
impl PartialEq for EnrichedMembers
impl Eq for EnrichedMembers
impl StructuralPartialEq for EnrichedMembers
Auto Trait Implementations§
impl Freeze for EnrichedMembers
impl RefUnwindSafe for EnrichedMembers
impl Send for EnrichedMembers
impl Sync for EnrichedMembers
impl Unpin for EnrichedMembers
impl UnwindSafe for EnrichedMembers
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more