vstd::raw_ptr

Struct Provenance

Source
pub struct Provenance {}
Expand description

Provenance

A full model of provenance is given by formalisms such as “Stacked Borrows” or “Tree Borrows.”

None of these models are finalized, nor has Rust committed to them. Rust’s recent RFC on provenance simply details that there is some concept of provenance.

Our model here, likewise, simply declares Provenance as an abstract type.

MiniRust currently declares a pointer has an Option<Provenance>; the model here gives provenance a special “null” value instead of using an option.

More reading for reference:

Implementations§

Source§

impl Provenance

Source

pub uninterp fn null() -> Self

The provenance of the null ptr (or really, “no provenance”)

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.