Final

Struct Final 

Source
pub struct Final<T>(/* private fields */);
Expand description

This no-std crate provides the Final, struct which guarantees the interior immutability of the value that it wraps. This is useful for preserving invariants on the fields of structures, whose ‘safe’ mutation would cause undefined behavior. Wraps a value in the Final type, which does not give out mutable references.

Implementations§

Source§

impl<T> Final<T>

Source

pub fn new(v: T) -> Final<T>

Wrap a value v in a Final

Trait Implementations§

Source§

impl<T: Debug> Debug for Final<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> Deref for Final<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.

Auto Trait Implementations§

§

impl<T> Freeze for Final<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Final<T>
where T: RefUnwindSafe,

§

impl<T> Send for Final<T>
where T: Send,

§

impl<T> Sync for Final<T>
where T: Sync,

§

impl<T> Unpin for Final<T>
where T: Unpin,

§

impl<T> UnwindSafe for Final<T>
where T: UnwindSafe,

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.