pub unsafe trait Drain<'d>: App<'d> {
// Required methods
fn begin(
self: Pin<&mut Self>,
turn: Turn<'_, 'd>,
driver: &mut Context<'_, '_, 'd>,
);
fn progress(self: Pin<&Self>, region: &Token<Identity<'d>>) -> Progress<'d>;
fn force(
self: Pin<&mut Self>,
turn: Turn<'_, 'd>,
driver: &mut Context<'_, '_, 'd>,
);
}Expand description
Cooperative drain while the complete application remains installed.
§Safety
Preserve every admitted owner’s identity, presence, address, and routes through
finish. begin and force must not replace owners or reclaim retained storage.
Cooperative quiescence does not authorize reclamation: the runtime still
shuts down every admitted owner and drains native operations before finish.
Required Methods§
fn begin( self: Pin<&mut Self>, turn: Turn<'_, 'd>, driver: &mut Context<'_, '_, 'd>, )
fn progress(self: Pin<&Self>, region: &Token<Identity<'d>>) -> Progress<'d>
fn force( self: Pin<&mut Self>, turn: Turn<'_, 'd>, driver: &mut Context<'_, '_, 'd>, )
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".