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§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