Skip to main content

ConcreteApplierHost

Struct ConcreteApplierHost 

Source
pub struct ConcreteApplierHost<A: Applier + 'static> { /* private fields */ }
Expand description

An ApplierHost that stores one applier of the concrete type A.

Implementations§

Source§

impl<A: Applier + 'static> ConcreteApplierHost<A>

Source

pub fn new(applier: A) -> Self

Creates a host that owns applier.

Source

pub fn borrow_typed(&self) -> ApplierGuard<'_, A>

Borrows the applier mutably with its concrete type. Panics if it is already borrowed.

Source

pub fn try_borrow_typed(&self) -> Result<ApplierGuard<'_, A>, BorrowMutError>

Borrows the applier mutably with its concrete type. Returns an error if it is already borrowed.

Source

pub fn try_into_inner(self) -> Result<A, (Self, NodeError)>

Returns the applier after all queued nodes have been disposed.

On failure, returns this host with its pending resources and the error, allowing the caller to repair the cause and retry extraction.

use cranpose_core::{ConcreteApplierHost, MemoryApplier};
let host = ConcreteApplierHost::new(MemoryApplier::new());
assert!(host.try_into_inner().is_ok());

Trait Implementations§

Source§

impl<A: Applier + 'static> ApplierHost for ConcreteApplierHost<A>

Source§

fn borrow_dyn(&self) -> ApplierGuard<'_, dyn Applier>

Borrows the applier mutably as a trait object. Dropping the guard finishes any node disposal queued while it was held.
Source§

fn dispose_nodes(&self, disposal: NodeDisposal) -> Result<(), NodeError>

Disposes detached roots, deferring recursive cleanup to the current borrow’s guard. Read more
Source§

fn compact(&self)

Compacts internal storage after commands have been applied.

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.