Skip to main content

dope_sys/io/reactor/submit/
control.rs

1use crate::io::reactor::{
2    complete,
3    submit::{Poll, Target},
4};
5
6/// Native control entries bound to the caller's exact completion tokens.
7pub trait Control {
8    type Target: Target;
9    type Owned<T: complete::raw::Token>;
10    type Poll<'a, T: complete::raw::Token>: Poll<'a, T>;
11
12    fn nop<T: complete::raw::Token>(complete: T) -> Self::Owned<T>;
13    fn cancel<T: complete::raw::Token>(target: T, complete: T) -> Self::Owned<T>;
14    fn close<T: complete::raw::Token>(slot: Self::Target, complete: T) -> Self::Owned<T>;
15    /// First step of a hard-linked close, suppressing its successful completion.
16    fn shutdown<T: complete::raw::Token>(slot: Self::Target, complete: T) -> Self::Owned<T>;
17}