pub trait Complete: Sized {
type Token: Token;
type Layout: Receive;
type Pending: Token<Index = Self::Index> + Pending<Extent = <Self::Layout as Receive>::Extent, Complete: Token<Index = Self::Index, Length = <<Self::Layout as Receive>::Extent as Extent>::Length>>;
type Index: Copy;
type Entry: Entry<Token = Self::Token>;
// Required methods
fn acquire(&mut self);
fn publish(&mut self);
fn pop(
&mut self,
) -> Option<(<Self as Complete>::Entry, Option<Result<<Self as Complete>::Pending, <Self as Complete>::Index>>)>;
fn refresh(&mut self) -> U32<0, { u32::MAX }>;
fn layout(&self) -> Self::Layout;
fn flush(&mut self);
}Expand description
Acquires completions and publishes returned storage without submitting native work.
Required Associated Types§
type Token: Token
type Layout: Receive
type Pending: Token<Index = Self::Index> + Pending<Extent = <Self::Layout as Receive>::Extent, Complete: Token<Index = Self::Index, Length = <<Self::Layout as Receive>::Extent as Extent>::Length>>
type Index: Copy
type Entry: Entry<Token = Self::Token>
Required Methods§
fn acquire(&mut self)
fn pop( &mut self, ) -> Option<(<Self as Complete>::Entry, Option<Result<<Self as Complete>::Pending, <Self as Complete>::Index>>)>
fn refresh(&mut self) -> U32<0, { u32::MAX }>
fn layout(&self) -> Self::Layout
fn flush(&mut self)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".