Skip to main content

AsyncStage

Trait AsyncStage 

Source
pub trait AsyncStage: CubeType + CubeType<ExpandType: AsyncStageExpand> {
    // Required methods
    fn issue(&self, region: &Region, lhs: &Tile, rhs: &Tile) -> Pending<()>;
    fn done(&self) -> Pending<()>;

    // Provided methods
    fn __expand_issue(
        scope: &Scope,
        this: &<Self as CubeType>::ExpandType,
        region: &<Region as CubeType>::ExpandType,
        lhs: &<Tile as CubeType>::ExpandType,
        rhs: &<Tile as CubeType>::ExpandType,
    ) -> <Pending<()> as CubeType>::ExpandType { ... }
    fn __expand_done(
        scope: &Scope,
        this: &<Self as CubeType>::ExpandType,
    ) -> <Pending<()> as CubeType>::ExpandType { ... }
}
Expand description

What a compute plane does with each stage of a walk whose reads run on after it returns: it issues them, and hands back their completion, which frees the stage once it resolves.

Required Methods§

Source

fn issue(&self, region: &Region, lhs: &Tile, rhs: &Tile) -> Pending<()>

Issue the reads of the stage lhs and rhs hold for region, and return their completion.

Source

fn done(&self) -> Pending<()>

A completion of the same work with nothing in flight, which is done at once: what a slot holds before the walk first reads it.

Provided Methods§

Source

fn __expand_issue( scope: &Scope, this: &<Self as CubeType>::ExpandType, region: &<Region as CubeType>::ExpandType, lhs: &<Tile as CubeType>::ExpandType, rhs: &<Tile as CubeType>::ExpandType, ) -> <Pending<()> as CubeType>::ExpandType

Source

fn __expand_done( scope: &Scope, this: &<Self as CubeType>::ExpandType, ) -> <Pending<()> as CubeType>::ExpandType

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§