Struct Box

Source
pub struct Box<T: 'static + ?Sized> { /* private fields */ }
Expand description

Owned pointer to a T.

Intended for similar use cases as the standard library Box, but this one does not free the memory on drop (though it does drop the T). Used sparingly in cases where we really need to own a dynamically allocated T instead of borrowing it, and using a static borrow would be too verbose.

Implementations§

Source§

impl<T: ?Sized> Box<T>

Source

pub fn from_mut(value: &'static mut T) -> Box<T>

Creates a Box from a leaked borrow of the boxed value.

Source

pub unsafe fn from_ptr(ptr: *mut T) -> Box<T>

Creates a Box from a raw pointer to the boxed value.

§Safety

The caller must ensure that the memory behind the pointer is never read, written, or freed while this Box exists, and that the T pointed to by this pointer is never accessed after this call, unless it’s after deconstructing this box with Box::into_ptr.

Source

pub fn into_ptr(self) -> *mut T

Consumes the Box<T> without dropping the internal value and returns the internal pointer.

Trait Implementations§

Source§

impl<T: ?Sized + Debug> Debug for Box<T>

Source§

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

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

impl<T: ?Sized> Deref for Box<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T: ?Sized> DerefMut for Box<T>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<T: ?Sized + Display> Display for Box<T>

Source§

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

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

impl<T: ?Sized> Drop for Box<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T: ?Sized + Sync> Sync for Box<T>

Auto Trait Implementations§

§

impl<T> Freeze for Box<T>
where T: ?Sized,

§

impl<T> RefUnwindSafe for Box<T>
where T: RefUnwindSafe + ?Sized,

§

impl<T> !Send for Box<T>

§

impl<T> Unpin for Box<T>
where T: ?Sized,

§

impl<T> UnwindSafe for Box<T>
where T: RefUnwindSafe + ?Sized,

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.