Trait CopyMechanism

Source
pub trait CopyMechanism<ES: Numeric>:
    CubeType
    + Sync
    + Send
    + 'static {
    // Required methods
    fn memcpy_async(
        this: &Self,
        source: &Slice<Line<ES>>,
        destination: &mut SliceMut<Line<ES>>,
    );
    fn __expand_memcpy_async(
        scope: &mut Scope,
        this: <Self as CubeType>::ExpandType,
        source: <Slice<Line<ES>> as CubeType>::ExpandType,
        destination: <SliceMut<Line<ES>> as CubeType>::ExpandType,
    ) -> <() as CubeType>::ExpandType;
}
Expand description

Allows to copy a slice of data from global to shared memory asynchronously

Required Methods§

Source

fn memcpy_async( this: &Self, source: &Slice<Line<ES>>, destination: &mut SliceMut<Line<ES>>, )

Copy the source slice to destination, assuming source’s length <= destination’s

Source

fn __expand_memcpy_async( scope: &mut Scope, this: <Self as CubeType>::ExpandType, source: <Slice<Line<ES>> as CubeType>::ExpandType, destination: <SliceMut<Line<ES>> as CubeType>::ExpandType, ) -> <() 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> CopyMechanism<ES> for Barrier<ES>

Source§

fn memcpy_async( this: &Self, source: &Slice<Line<ES>>, destination: &mut SliceMut<Line<ES>>, )

Source§

fn __expand_memcpy_async( scope: &mut Scope, this: <Self as CubeType>::ExpandType, source: <Slice<Line<ES>> as CubeType>::ExpandType, destination: <SliceMut<Line<ES>> as CubeType>::ExpandType, ) -> <() as CubeType>::ExpandType

Implementors§