Skip to main content

Complete

Trait Complete 

Source
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§

Source

type Token: Token

Source

type Layout: Receive

Source

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>>

Source

type Index: Copy

Source

type Entry: Entry<Token = Self::Token>

Required Methods§

Source

fn acquire(&mut self)

Source

fn publish(&mut self)

Publishes consumed completion ownership without acquiring another batch.

Source

fn pop( &mut self, ) -> Option<(<Self as Complete>::Entry, Option<Result<<Self as Complete>::Pending, <Self as Complete>::Index>>)>

Source

fn refresh(&mut self) -> U32<0, { u32::MAX }>

Source

fn layout(&self) -> Self::Layout

Source

fn flush(&mut self)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§