pub trait ArgNestedTuple<AA>{
    type ArgNames;

    // Required methods
    fn check_num_single_args(index: i32);
    fn next_single_arg(index: i32, arg_names: Self::ArgNames) -> Self;
    fn next_multi_arg<L: TopDecodeMultiInput>(
        loader: L,
        arg_names: Self::ArgNames
    ) -> Self;
}
Expand description

Models an argument tree of the form (arg1, (arg2, ... (argn, ()))), used for retrieving endpoint arguments.

It translates to a small algorithm determined at compile-time. That is why all methods are inlined.

Required Associated Types§

Required Methods§

source

fn check_num_single_args(index: i32)

source

fn next_single_arg(index: i32, arg_names: Self::ArgNames) -> Self

source

fn next_multi_arg<L: TopDecodeMultiInput>( loader: L, arg_names: Self::ArgNames ) -> Self

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<AA> ArgNestedTuple<AA> for ()

§

type ArgNames = ()

source§

fn check_num_single_args(index: i32)

source§

fn next_single_arg(_index: i32, _arg_names: Self::ArgNames) -> Self

source§

fn next_multi_arg<L: TopDecodeMultiInput>( loader: L, _arg_names: Self::ArgNames ) -> Self

source§

impl<AA, Head, Tail> ArgNestedTuple<AA> for (Head, Tail)

§

type ArgNames = (&'static str, <Tail as ArgNestedTuple<AA>>::ArgNames)

source§

fn check_num_single_args(index: i32)

source§

fn next_single_arg(index: i32, arg_names: Self::ArgNames) -> Self

source§

fn next_multi_arg<L: TopDecodeMultiInput>( loader: L, arg_names: Self::ArgNames ) -> Self

Implementors§