LaunchArg

Trait LaunchArg 

Source
pub trait LaunchArg:
    CubeType
    + Send
    + Sync
    + 'static {
    type RuntimeArg<'a, R: Runtime>: ArgSettings<R>;
    type CompilationArg: CompilationArg;

    // Required methods
    fn compilation_arg<R>(
        runtime_arg: &Self::RuntimeArg<'_, R>,
    ) -> Self::CompilationArg
       where R: Runtime;
    fn expand(
        arg: &Self::CompilationArg,
        builder: &mut KernelBuilder,
    ) -> Self::ExpandType;

    // Provided method
    fn expand_output(
        arg: &Self::CompilationArg,
        builder: &mut KernelBuilder,
    ) -> Self::ExpandType { ... }
}
Expand description

Defines how a launch argument can be expanded.

TODO Verify the accuracy of the next comment.

Normally this type should be implemented two times for an argument. Once for the reference and the other for the mutable reference. Often time, the reference should expand the argument as an input while the mutable reference should expand the argument as an output.

Required Associated Types§

Source

type RuntimeArg<'a, R: Runtime>: ArgSettings<R>

The runtime argument for the kernel.

Source

type CompilationArg: CompilationArg

Compilation argument.

Required Methods§

Source

fn compilation_arg<R>( runtime_arg: &Self::RuntimeArg<'_, R>, ) -> Self::CompilationArg
where R: Runtime,

Source

fn expand( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> Self::ExpandType

Register an input variable during compilation that fill the KernelBuilder.

Provided Methods§

Source

fn expand_output( arg: &Self::CompilationArg, builder: &mut KernelBuilder, ) -> Self::ExpandType

Register an output variable during compilation that fill the KernelBuilder.

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 LaunchArg for LinearLayout

Source§

impl LaunchArg for ()

Source§

type RuntimeArg<'a, R: Runtime> = ()

Source§

type CompilationArg = ()

Source§

fn compilation_arg<'a, R>( _runtime_arg: &'a <() as LaunchArg>::RuntimeArg<'a, R>, ) -> <() as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( _: &<() as LaunchArg>::CompilationArg, _builder: &mut KernelBuilder, ) -> <() as CubeType>::ExpandType

Source§

impl LaunchArg for Swizzle

Source§

impl LaunchArg for PermutedLayout

Source§

impl LaunchArg for PlainLayout

Source§

impl LaunchArg for SimpleLayout

Source§

impl LaunchArg for StridedLayout

Source§

impl<C, S> LaunchArg for VirtualLayout<C, S>
where C: Coordinates + 'static, S: Coordinates + 'static,

Source§

impl<E, C, IO> LaunchArg for View<E, C, IO>
where E: CubePrimitive, C: Coordinates + 'static, IO: SliceVisibility,

Source§

type RuntimeArg<'a, R: Runtime> = ViewArg<'a, C, R>

Source§

type CompilationArg = ViewCompilationArg<C>

Source§

fn compilation_arg<'a, R>( runtime_arg: &<View<E, C, IO> as LaunchArg>::RuntimeArg<'a, R>, ) -> <View<E, C, IO> as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<View<E, C, IO> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <View<E, C, IO> as CubeType>::ExpandType

Source§

fn expand_output( arg: &<View<E, C, IO> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <View<E, C, IO> as CubeType>::ExpandType

Source§

impl<E, L, IO> LaunchArg for TypedView<E, L, IO>
where E: CubePrimitive, L: LaunchLayout<SourceCoordinates = usize>, IO: SliceVisibility,

Source§

type RuntimeArg<'a, R: Runtime> = TypedViewLaunch<'a, L, R>

Source§

type CompilationArg = TypedViewCompilationArg<L>

Source§

fn compilation_arg<'a, R>( runtime_arg: &<TypedView<E, L, IO> as LaunchArg>::RuntimeArg<'a, R>, ) -> <TypedView<E, L, IO> as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<TypedView<E, L, IO> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <TypedView<E, L, IO> as CubeType>::ExpandType

Source§

fn expand_output( arg: &<TypedView<E, L, IO> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <TypedView<E, L, IO> as CubeType>::ExpandType

Source§

impl<I> LaunchArg for FastDivmod<I>
where I: FastDivmodInt,

Source§

type RuntimeArg<'a, R: Runtime> = FastDivmodArgs<I>

Source§

type CompilationArg = FastDivmodCompilationArg<I>

Source§

fn compilation_arg<'a, R>( runtime_arg: &<FastDivmod<I> as LaunchArg>::RuntimeArg<'a, R>, ) -> <FastDivmod<I> as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<FastDivmod<I> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <FastDivmod<I> as CubeType>::ExpandType

Source§

fn expand_output( arg: &<FastDivmod<I> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <FastDivmod<I> as CubeType>::ExpandType

Source§

impl<L0, L1> LaunchArg for Chain<L0, L1>
where L0: Layout + LaunchArg, L1: Layout<SourceCoordinates = <L0 as Layout>::Coordinates> + LaunchArg,

Source§

type RuntimeArg<'a, R: Runtime> = ChainLaunch<'a, L0, L1, R>

Source§

type CompilationArg = ChainCompilationArg<L0, L1>

Source§

fn compilation_arg<'a, R>( runtime_arg: &<Chain<L0, L1> as LaunchArg>::RuntimeArg<'a, R>, ) -> <Chain<L0, L1> as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<Chain<L0, L1> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <Chain<L0, L1> as CubeType>::ExpandType

Source§

fn expand_output( arg: &<Chain<L0, L1> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <Chain<L0, L1> as CubeType>::ExpandType

Source§

impl<L> LaunchArg for IntoDynLayout<L>

Source§

impl<L, P, O> LaunchArg for IntoDyn2Layout<L, P, O>
where L: Layout<SourceCoordinates = (P, O)> + LaunchArg, P: IntoDyn, O: IntoDyn,

Source§

type RuntimeArg<'a, R: Runtime> = IntoDyn2LayoutLaunch<'a, L, P, O, R>

Source§

type CompilationArg = IntoDyn2LayoutCompilationArg<L, P, O>

Source§

fn compilation_arg<R, 'a>( runtime_arg: &<IntoDyn2Layout<L, P, O> as LaunchArg>::RuntimeArg<'a, R>, ) -> <IntoDyn2Layout<L, P, O> as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<IntoDyn2Layout<L, P, O> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <IntoDyn2Layout<L, P, O> as CubeType>::ExpandType

Source§

fn expand_output( arg: &<IntoDyn2Layout<L, P, O> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <IntoDyn2Layout<L, P, O> as CubeType>::ExpandType

Source§

impl<Q, S, F, C> LaunchArg for QuantizedView<Q, S, F, C>
where Q: CubePrimitive, S: CubePrimitive, F: Numeric, C: Coordinates + 'static,

Source§

type RuntimeArg<'a, R: Runtime> = QuantizedViewLaunch<'a, Q, S, F, C, R>

Source§

type CompilationArg = QuantizedViewCompilationArg<Q, S, F, C>

Source§

fn compilation_arg<R, 'a>( runtime_arg: &<QuantizedView<Q, S, F, C> as LaunchArg>::RuntimeArg<'a, R>, ) -> <QuantizedView<Q, S, F, C> as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<QuantizedView<Q, S, F, C> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <QuantizedView<Q, S, F, C> as CubeType>::ExpandType

Source§

fn expand_output( arg: &<QuantizedView<Q, S, F, C> as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> <QuantizedView<Q, S, F, C> as CubeType>::ExpandType

Source§

impl<T0, T1> LaunchArg for (T0, T1)
where T0: LaunchArg, T1: LaunchArg,

Source§

type RuntimeArg<'a, R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<'a, R>, <T1 as LaunchArg>::RuntimeArg<'a, R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg)

Source§

fn compilation_arg<R>( runtime_arg: &<(T0, T1) as LaunchArg>::RuntimeArg<'_, R>, ) -> <(T0, T1) as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<(T0, T1) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType)

Source§

fn expand_output( arg: &<(T0, T1) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType)

Source§

impl<T0, T1, T2> LaunchArg for (T0, T1, T2)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg,

Source§

impl<T0, T1, T2, T3> LaunchArg for (T0, T1, T2, T3)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg,

Source§

impl<T0, T1, T2, T3, T4> LaunchArg for (T0, T1, T2, T3, T4)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg,

Source§

impl<T0, T1, T2, T3, T4, T5> LaunchArg for (T0, T1, T2, T3, T4, T5)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg,

Source§

impl<T0, T1, T2, T3, T4, T5, T6> LaunchArg for (T0, T1, T2, T3, T4, T5, T6)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg,

Source§

type RuntimeArg<'a, R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<'a, R>, <T1 as LaunchArg>::RuntimeArg<'a, R>, <T2 as LaunchArg>::RuntimeArg<'a, R>, <T3 as LaunchArg>::RuntimeArg<'a, R>, <T4 as LaunchArg>::RuntimeArg<'a, R>, <T5 as LaunchArg>::RuntimeArg<'a, R>, <T6 as LaunchArg>::RuntimeArg<'a, R>, <T7 as LaunchArg>::RuntimeArg<'a, R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg)

Source§

fn compilation_arg<R>( runtime_arg: &<(T0, T1, T2, T3, T4, T5, T6, T7) as LaunchArg>::RuntimeArg<'_, R>, ) -> <(T0, T1, T2, T3, T4, T5, T6, T7) as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType)

Source§

fn expand_output( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg,

Source§

type RuntimeArg<'a, R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<'a, R>, <T1 as LaunchArg>::RuntimeArg<'a, R>, <T2 as LaunchArg>::RuntimeArg<'a, R>, <T3 as LaunchArg>::RuntimeArg<'a, R>, <T4 as LaunchArg>::RuntimeArg<'a, R>, <T5 as LaunchArg>::RuntimeArg<'a, R>, <T6 as LaunchArg>::RuntimeArg<'a, R>, <T7 as LaunchArg>::RuntimeArg<'a, R>, <T8 as LaunchArg>::RuntimeArg<'a, R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg)

Source§

fn compilation_arg<R>( runtime_arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8) as LaunchArg>::RuntimeArg<'_, R>, ) -> <(T0, T1, T2, T3, T4, T5, T6, T7, T8) as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType)

Source§

fn expand_output( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg, T9: LaunchArg,

Source§

type RuntimeArg<'a, R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<'a, R>, <T1 as LaunchArg>::RuntimeArg<'a, R>, <T2 as LaunchArg>::RuntimeArg<'a, R>, <T3 as LaunchArg>::RuntimeArg<'a, R>, <T4 as LaunchArg>::RuntimeArg<'a, R>, <T5 as LaunchArg>::RuntimeArg<'a, R>, <T6 as LaunchArg>::RuntimeArg<'a, R>, <T7 as LaunchArg>::RuntimeArg<'a, R>, <T8 as LaunchArg>::RuntimeArg<'a, R>, <T9 as LaunchArg>::RuntimeArg<'a, R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg, <T9 as LaunchArg>::CompilationArg)

Source§

fn compilation_arg<R>( runtime_arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) as LaunchArg>::RuntimeArg<'_, R>, ) -> <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType)

Source§

fn expand_output( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg, T9: LaunchArg, T10: LaunchArg,

Source§

type RuntimeArg<'a, R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<'a, R>, <T1 as LaunchArg>::RuntimeArg<'a, R>, <T2 as LaunchArg>::RuntimeArg<'a, R>, <T3 as LaunchArg>::RuntimeArg<'a, R>, <T4 as LaunchArg>::RuntimeArg<'a, R>, <T5 as LaunchArg>::RuntimeArg<'a, R>, <T6 as LaunchArg>::RuntimeArg<'a, R>, <T7 as LaunchArg>::RuntimeArg<'a, R>, <T8 as LaunchArg>::RuntimeArg<'a, R>, <T9 as LaunchArg>::RuntimeArg<'a, R>, <T10 as LaunchArg>::RuntimeArg<'a, R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg, <T9 as LaunchArg>::CompilationArg, <T10 as LaunchArg>::CompilationArg)

Source§

fn compilation_arg<R>( runtime_arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) as LaunchArg>::RuntimeArg<'_, R>, ) -> <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType, <T10 as CubeType>::ExpandType)

Source§

fn expand_output( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType, <T10 as CubeType>::ExpandType)

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> LaunchArg for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: LaunchArg, T1: LaunchArg, T2: LaunchArg, T3: LaunchArg, T4: LaunchArg, T5: LaunchArg, T6: LaunchArg, T7: LaunchArg, T8: LaunchArg, T9: LaunchArg, T10: LaunchArg, T11: LaunchArg,

Source§

type RuntimeArg<'a, R: Runtime> = (<T0 as LaunchArg>::RuntimeArg<'a, R>, <T1 as LaunchArg>::RuntimeArg<'a, R>, <T2 as LaunchArg>::RuntimeArg<'a, R>, <T3 as LaunchArg>::RuntimeArg<'a, R>, <T4 as LaunchArg>::RuntimeArg<'a, R>, <T5 as LaunchArg>::RuntimeArg<'a, R>, <T6 as LaunchArg>::RuntimeArg<'a, R>, <T7 as LaunchArg>::RuntimeArg<'a, R>, <T8 as LaunchArg>::RuntimeArg<'a, R>, <T9 as LaunchArg>::RuntimeArg<'a, R>, <T10 as LaunchArg>::RuntimeArg<'a, R>, <T11 as LaunchArg>::RuntimeArg<'a, R>)

Source§

type CompilationArg = (<T0 as LaunchArg>::CompilationArg, <T1 as LaunchArg>::CompilationArg, <T2 as LaunchArg>::CompilationArg, <T3 as LaunchArg>::CompilationArg, <T4 as LaunchArg>::CompilationArg, <T5 as LaunchArg>::CompilationArg, <T6 as LaunchArg>::CompilationArg, <T7 as LaunchArg>::CompilationArg, <T8 as LaunchArg>::CompilationArg, <T9 as LaunchArg>::CompilationArg, <T10 as LaunchArg>::CompilationArg, <T11 as LaunchArg>::CompilationArg)

Source§

fn compilation_arg<R>( runtime_arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) as LaunchArg>::RuntimeArg<'_, R>, ) -> <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) as LaunchArg>::CompilationArg
where R: Runtime,

Source§

fn expand( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType, <T10 as CubeType>::ExpandType, <T11 as CubeType>::ExpandType)

Source§

fn expand_output( arg: &<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) as LaunchArg>::CompilationArg, builder: &mut KernelBuilder, ) -> (<T0 as CubeType>::ExpandType, <T1 as CubeType>::ExpandType, <T2 as CubeType>::ExpandType, <T3 as CubeType>::ExpandType, <T4 as CubeType>::ExpandType, <T5 as CubeType>::ExpandType, <T6 as CubeType>::ExpandType, <T7 as CubeType>::ExpandType, <T8 as CubeType>::ExpandType, <T9 as CubeType>::ExpandType, <T10 as CubeType>::ExpandType, <T11 as CubeType>::ExpandType)

Source§

impl<T> LaunchArg for CubeOption<T>
where T: LaunchArg,

Implementors§