Stage

Trait Stage 

Source
pub trait Stage<ES: Numeric, IO: SliceVisibility>:
    CubeType
    + Send
    + Sync
    + 'static {
    type TileKind: TileKind<IO>;

    // Required methods
    fn tile(
        this: &Self,
        tile: Coords2d,
    ) -> <Self::TileKind as TileKind<IO>>::Tile<ES>;
    fn __expand_tile(
        scope: &mut Scope,
        this: <Self as CubeType>::ExpandType,
        tile: <Coords2d as CubeType>::ExpandType,
    ) -> <<Self::TileKind as TileKind<IO>>::Tile<ES> as CubeType>::ExpandType;
}
Expand description

Stage that can be divided into tiles, with the same kind used by the tile matmul readers.

Required Associated Types§

Source

type TileKind: TileKind<IO>

The kind (or family) of the tiles contained in this stage

Required Methods§

Source

fn tile( this: &Self, tile: Coords2d, ) -> <Self::TileKind as TileKind<IO>>::Tile<ES>

Slices a tile with offset (row, col) from the stage and returns it

Source

fn __expand_tile( scope: &mut Scope, this: <Self as CubeType>::ExpandType, tile: <Coords2d as CubeType>::ExpandType, ) -> <<Self::TileKind as TileKind<IO>>::Tile<ES> as CubeType>::ExpandType

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<ES: Numeric, IO: SliceVisibility, Inner: Stage<ES, IO>> Stage<ES, IO> for CubeOption<Inner>

Source§

type TileKind = CubeOption<<Inner as Stage<ES, IO>>::TileKind>

Source§

fn tile( this: &Self, tile: Coords2d, ) -> <Self::TileKind as TileKind<IO>>::Tile<ES>

Source§

fn __expand_tile( scope: &mut Scope, this: <Self as CubeType>::ExpandType, tile: <Coords2d as CubeType>::ExpandType, ) -> <<Self::TileKind as TileKind<IO>>::Tile<ES> as CubeType>::ExpandType

Implementors§