pub(crate) struct RedPerm<'db>(Id, PhantomData<&'db Value<RedPerm<'static>>>);Expand description
A “lien chain” is a list of permissions by which some data may have been reached.
An empty lien chain corresponds to owned data (my, in surface Dada syntax).
A lien chain like ref[p] mut[q] would correspond to data referencing a variable p
which in turn had data mutable from q (which in turn owned the data).
Tuple Fields§
§0: Id§1: PhantomData<&'db Value<RedPerm<'static>>>Implementations§
Source§impl RedPerm<'static>
impl RedPerm<'static>
pub fn ingredient<Db>(db: &Db) -> &IngredientImpl<Self>where
Db: ?Sized + Database,
Source§impl<'db> RedPerm<'db>
impl<'db> RedPerm<'db>
pub fn new<Db_, T0: Lookup<Vec<RedChain<'db>>> + Hash>( db: &'db Db_, chains: T0, ) -> Self
pub fn chains<Db_>(self, db: &'db Db_) -> &'db Vec<RedChain<'db>>where
Db_: ?Sized + Database,
Sourcepub fn default_debug_fmt(this: Self, f: &mut Formatter<'_>) -> Result
pub fn default_debug_fmt(this: Self, f: &mut Formatter<'_>) -> Result
Default debug formatting for this struct (may be useful if you define your own Debug impl)
Trait Implementations§
Source§impl Configuration for RedPerm<'static>
impl Configuration for RedPerm<'static>
const DEBUG_NAME: &'static str = "RedPerm"
Source§fn struct_from_id<'db>(id: Id) -> Self::Struct<'db>
fn struct_from_id<'db>(id: Id) -> Self::Struct<'db>
Create an end-user struct from the salsa id Read more
Source§fn deref_struct(s: Self::Struct<'_>) -> Id
fn deref_struct(s: Self::Struct<'_>) -> Id
Deref the struct to yield the underlying id.
Source§impl<'db> GreatestLowerBound<'db> for RedPerm<'db>
impl<'db> GreatestLowerBound<'db> for RedPerm<'db>
Source§impl<'db> Ord for RedPerm<'db>
impl<'db> Ord for RedPerm<'db>
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl<'db> PartialOrd for RedPerm<'db>
impl<'db> PartialOrd for RedPerm<'db>
impl<'db> Copy for RedPerm<'db>
impl<'db> Eq for RedPerm<'db>
impl<'db> Send for RedPerm<'db>
impl<'db> StructuralPartialEq for RedPerm<'db>
impl<'db> Sync for RedPerm<'db>
Auto Trait Implementations§
impl<'db> Freeze for RedPerm<'db>
impl<'db> !RefUnwindSafe for RedPerm<'db>
impl<'db> Unpin for RedPerm<'db>
impl<'db> UnsafeUnpin for RedPerm<'db>
impl<'db> !UnwindSafe for RedPerm<'db>
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,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> HashEqLike<T> for T
impl<T> HashEqLike<T> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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