Teardown

Struct Teardown 

Source
pub struct Teardown<Cx: ?Sized> { /* private fields */ }
Expand description

2026-09-25: Releases a set of resources in reverse registration order, the inverse of how they were built, which is the only safe order when later resources borrow earlier ones.

One failure does not abandon the rest: every resource’s release is attempted, and one error naming every failure is returned afterwards.

Implementations§

Source§

impl<Cx: ?Sized> Teardown<Cx>

Source

pub fn new() -> Self

Source

pub fn push(&mut self, resource: Box<dyn ModelResource<Cx>>)

2026-09-25: Register a resource. Callers register in construction order.

Source

pub fn len(&self) -> usize

Source

pub fn is_empty(&self) -> bool

Source

pub fn release_all(&mut self, cx: &Cx) -> Result<()>

2026-09-25: Release everything, newest first. After attempting them all, returns one error that lists every failure with its resource’s label.

Trait Implementations§

Source§

impl<Cx: ?Sized> Default for Teardown<Cx>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<Cx> Freeze for Teardown<Cx>
where Cx: ?Sized,

§

impl<Cx> !RefUnwindSafe for Teardown<Cx>

§

impl<Cx> Send for Teardown<Cx>
where Cx: ?Sized,

§

impl<Cx> Sync for Teardown<Cx>
where Cx: ?Sized,

§

impl<Cx> Unpin for Teardown<Cx>
where Cx: ?Sized,

§

impl<Cx> !UnwindSafe for Teardown<Cx>

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.