pub trait Retain<P>: Cleanup<P> {
type Build: Build<P, Context = Self::Context, Cleanup = Self>;
type Ring;
type Probe;
type Canary;
type Context: Context<Cleanup = Self::Buffers>;
type Buffers: Cleanup<Context = Self::Context>;
type Producer;
type Registration;
type Registered;
type BufferError;
// Required methods
fn probe(state: Self::Probe) -> Self;
fn open<F: Failure<Cleanup = Self::Buffers>>(
ring: Self::Ring,
fault: F,
) -> Self::Build;
fn canary(
ring: Self::Ring,
primary: P,
buffers: Self::Canary,
) -> Result<P, Self>;
fn unmap(ring: Self::Ring, primary: P, buffers: Self::Buffers) -> Self;
fn registration(
state: Self::Registration,
buffers: Self::Producer,
) -> Self::Build;
fn provided(
cause: Self::BufferError,
ring: Self::Registered,
buffers: Self::Producer,
) -> Self::Build;
}Expand description
Retains all ring and payload owners while construction cleanup is incomplete.
Required Associated Types§
type Build: Build<P, Context = Self::Context, Cleanup = Self>
type Ring
type Probe
type Canary
type Context: Context<Cleanup = Self::Buffers>
type Buffers: Cleanup<Context = Self::Context>
type Producer
type Registration
type Registered
type BufferError
Required Methods§
fn probe(state: Self::Probe) -> Self
fn open<F: Failure<Cleanup = Self::Buffers>>( ring: Self::Ring, fault: F, ) -> Self::Build
fn canary( ring: Self::Ring, primary: P, buffers: Self::Canary, ) -> Result<P, Self>
fn unmap(ring: Self::Ring, primary: P, buffers: Self::Buffers) -> Self
fn registration( state: Self::Registration, buffers: Self::Producer, ) -> Self::Build
fn provided( cause: Self::BufferError, ring: Self::Registered, buffers: Self::Producer, ) -> Self::Build
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".