pub trait CallExecutor:
Send
+ Sync
+ Debug {
// Required methods
fn retained(&self) -> usize;
fn observe_empty(&self) -> Result<(), CallError>;
fn start(
&self,
request: CallRequest,
completed: Box<dyn FnOnce(Result<CallReply, CallError>) + Send>,
) -> Result<Box<dyn CallExecution>, CallError>;
}Expand description
The receiving supervisor supplies its ordinary admitted connection path.
Required Methods§
Sourcefn retained(&self) -> usize
fn retained(&self) -> usize
Actual retained execution owners, for capacity and leak observations.
Sourcefn observe_empty(&self) -> Result<(), CallError>
fn observe_empty(&self) -> Result<(), CallError>
Waits on execution retirement signals, with no clock or polling.
§Errors
The retirement signal state was poisoned.
Sourcefn start(
&self,
request: CallRequest,
completed: Box<dyn FnOnce(Result<CallReply, CallError>) + Send>,
) -> Result<Box<dyn CallExecution>, CallError>
fn start( &self, request: CallRequest, completed: Box<dyn FnOnce(Result<CallReply, CallError>) + Send>, ) -> Result<Box<dyn CallExecution>, CallError>
Starts only after the keyed link has decided its two crossing grants.
§Errors
Full connection admission, wire validation or owned reader startup failed.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".