pub(crate) struct Provenance<'z3> {
pub alloc_id: AllocId,
pub offset: Int<'z3>,
pub offset_kind: Option<OffsetKind<'z3>>,
}Expand description
Pointer provenance: which allocation, at what byte offset, and (when known) what structure that offset has.
Fields§
§alloc_id: AllocIdThe allocation this pointer derives from.
offset: Int<'z3>Byte offset from the allocation base (always present). A freshly created
pointer to the base of an allocation has offset = 0.
offset_kind: Option<OffsetKind<'z3>>The offset’s structure. None means the pointer sits at the base
(offset == 0) with no further structure; Some(..) records whether the
offset is a compile-time field offset (Field), an element index from
element-strided arithmetic (Element), or a byte-strided offset (Byte).
Trait Implementations§
Source§impl<'z3> Clone for Provenance<'z3>
impl<'z3> Clone for Provenance<'z3>
Auto Trait Implementations§
impl<'z3> !DynSend for Provenance<'z3>
impl<'z3> !DynSync for Provenance<'z3>
impl<'z3> !Send for Provenance<'z3>
impl<'z3> !Sync for Provenance<'z3>
impl<'z3> Freeze for Provenance<'z3>
impl<'z3> RefUnwindSafe for Provenance<'z3>
impl<'z3> Unpin for Provenance<'z3>
impl<'z3> UnsafeUnpin for Provenance<'z3>
impl<'z3> UnwindSafe for Provenance<'z3>
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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