pub enum Offset {
Field(usize),
VectorIndex,
Global(AbsStructType),
}
Expand description
Offset of an access path: either a field, vector index, or global key
Variants
Field(usize)
Index into contents of a struct by field offset
VectorIndex
Unknown index into a vector
Global(AbsStructType)
A type index into global storage. Only follows a field or vector index of type address
Implementations
sourceimpl Offset
impl Offset
pub fn global(mid: &ModuleId, sid: StructId, types: Vec<Type>) -> Self
pub fn field(f: usize) -> Self
sourcepub fn get_type(&self, base: &Type, env: &GlobalEnv) -> Type
pub fn get_type(&self, base: &Type, env: &GlobalEnv) -> Type
Get the type of offset base
/self
in function fun
sourcepub fn substitute_footprint(&mut self, type_actuals: &[Type])
pub fn substitute_footprint(&mut self, type_actuals: &[Type])
Bind free type variables in self
to type_actuals
sourcepub fn is_statically_known(&self) -> bool
pub fn is_statically_known(&self) -> bool
Return true if this offset is the same in all concrete program executions
sourcepub fn display<'a>(
&'a self,
base_type: &'a Type,
env: &'a GlobalEnv
) -> OffsetDisplay<'a>
pub fn display<'a>(
&'a self,
base_type: &'a Type,
env: &'a GlobalEnv
) -> OffsetDisplay<'a>
Return a wrapper of self
that implements Display
using env
Trait Implementations
sourceimpl Ord for Offset
impl Ord for Offset
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialEq<Offset> for Offset
impl PartialEq<Offset> for Offset
sourceimpl PartialOrd<Offset> for Offset
impl PartialOrd<Offset> for Offset
sourcefn partial_cmp(&self, other: &Offset) -> Option<Ordering>
fn partial_cmp(&self, other: &Offset) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl Eq for Offset
impl StructuralEq for Offset
impl StructuralPartialEq for Offset
Auto Trait Implementations
impl RefUnwindSafe for Offset
impl Send for Offset
impl Sync for Offset
impl Unpin for Offset
impl UnwindSafe for Offset
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.