davenport

Struct Workspace

Source
pub struct Workspace { /* private fields */ }
Expand description

A workspace that contains type-erased objects.

The workspace is intended to hold intermediate data used as workspace in computations. It is optimized particularly for the case where the same type is accessed many times in a row.

Usually you do not need to use this type directly. Instead, use define_thread_local_workspace in conjunction with with_thread_local_workspace as described in the crate-level documentation.

Implementations§

Source§

impl Workspace

Source

pub fn try_insert<W: 'static>(&mut self, w: W) -> Option<&mut W>

Attempts to insert the given object into the workspace.

If the insertion was successful, a reference to the object is returned. Otherwise, None is returned.

Source

pub fn try_get<W: 'static>(&self) -> Option<&W>

Source

pub fn try_get_mut<W: 'static>(&mut self) -> Option<&mut W>

Source

pub fn get_or_insert_with<W, F>(&mut self, create: F) -> &mut W
where W: 'static, F: FnOnce() -> W,

Source

pub fn get_or_default<W>(&mut self) -> &mut W
where W: 'static + Default,

Trait Implementations§

Source§

impl Debug for Workspace

Source§

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

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

impl Default for Workspace

Source§

fn default() -> Workspace

Returns the “default value” for a type. Read more

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.