Struct creusot_contracts::std::ptr::PtrDeepModel
source · pub struct PtrDeepModel {
pub addr: Int,
/* private fields */
}
Expand description
We conservatively model raw pointers as having an address plus some hidden metadata.
This is to account for provenance (https://doc.rust-lang.org/std/ptr/index.html#using-strict-provenance) and wide pointers. See e.g. https://doc.rust-lang.org/std/primitive.pointer.html#method.is_null: “unsized types have many possible null pointers, as only the raw data pointer is considered, not their length, vtable, etc. Therefore, two pointers that are null may still not compare equal to each other.”
Fields§
§addr: Int
Auto Trait Implementations§
impl Freeze for PtrDeepModel
impl RefUnwindSafe for PtrDeepModel
impl !Send for PtrDeepModel
impl !Sync for PtrDeepModel
impl Unpin for PtrDeepModel
impl UnwindSafe for PtrDeepModel
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> MakeSized for Twhere
T: ?Sized,
impl<T> MakeSized for Twhere
T: ?Sized,
source§fn make_sized(&self) -> Box<T>
fn make_sized(&self) -> Box<T>
logic ⚠
ensures
*result == *self