pub enum PtrProxyHint {
FieldOnly,
Other,
}Expand description
Coarse classification of a value’s points-to set, used by consumers (Hierarchy: resource lifecycle) that don’t need full set membership but do need to know “is this value’s heap identity a field of some other value, or does it stand on its own?”.
The classifier is intentionally narrow: only PtrProxyHint::FieldOnly
is interesting to today’s consumers, every other shape (empty, root,
Top, mixed) collapses to PtrProxyHint::Other so the consumer
keeps its existing behaviour.
Variants§
FieldOnly
Every member of the points-to set is an AbsLoc::Field. The
value is a sub-object alias, e.g. m in m := c.mu.
Other
Anything else: the set is empty, contains a root location
(AbsLoc::SelfParam / AbsLoc::Param / AbsLoc::Alloc),
contains AbsLoc::Top, or mixes fields with roots. Consumers
fall back to their default behaviour.
Trait Implementations§
Source§impl Clone for PtrProxyHint
impl Clone for PtrProxyHint
Source§fn clone(&self) -> PtrProxyHint
fn clone(&self) -> PtrProxyHint
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PtrProxyHint
impl Debug for PtrProxyHint
Source§impl Hash for PtrProxyHint
impl Hash for PtrProxyHint
Source§impl PartialEq for PtrProxyHint
impl PartialEq for PtrProxyHint
impl Copy for PtrProxyHint
impl Eq for PtrProxyHint
impl StructuralPartialEq for PtrProxyHint
Auto Trait Implementations§
impl Freeze for PtrProxyHint
impl RefUnwindSafe for PtrProxyHint
impl Send for PtrProxyHint
impl Sync for PtrProxyHint
impl Unpin for PtrProxyHint
impl UnsafeUnpin for PtrProxyHint
impl UnwindSafe for PtrProxyHint
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
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
key and return true if they are equal.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§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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>
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