pub(crate) enum AllocKind<'z3> {
Object,
Slice {
len: Int<'z3>,
},
External,
}Expand description
The shape of an allocation: a single object, a slice/array buffer, or an
external raw-pointer parameter. element_ty (typed vs untyped) and the
parent sub-view edge stay separate fields.
Variants§
Object
A single object: a Box<T> heap object, a struct, a scalar, or an
untyped raw buffer.
Slice
A slice/array buffer with a known element count.
Fields
§
len: Int<'z3>External
An external raw-pointer parameter. size is an unconstrained symbolic
term (the caller may pass any allocation); nullability is not stored
here — it is tracked via the pointer term (term == 0) path conditions.
Trait Implementations§
Auto Trait Implementations§
impl<'z3> !DynSend for AllocKind<'z3>
impl<'z3> !DynSync for AllocKind<'z3>
impl<'z3> !Send for AllocKind<'z3>
impl<'z3> !Sync for AllocKind<'z3>
impl<'z3> Freeze for AllocKind<'z3>
impl<'z3> RefUnwindSafe for AllocKind<'z3>
impl<'z3> Unpin for AllocKind<'z3>
impl<'z3> UnsafeUnpin for AllocKind<'z3>
impl<'z3> UnwindSafe for AllocKind<'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