BlockFn

Trait BlockFn 

Source
pub unsafe trait BlockFn: Sealed<Self::Args, Self::Output> {
    type Args: EncodeArguments;
    type Output: EncodeReturn;
}
Expand description

Types that represent closure parameters/arguments and return types in a block.

This is implemented for dyn Fn closures with up to 12 parameters, where each parameter implements EncodeArgument and the return type implements EncodeReturn.

§Safety

This is a sealed trait, and should not need to be implemented. Open an issue if you know a use-case where this restrition should be lifted!

Required Associated Types§

Source

type Args: EncodeArguments

The parameters/arguments to the block.

Source

type Output: EncodeReturn

The return type of the block.

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<R: EncodeReturn> BlockFn for dyn Fn() -> R + '_

Source§

impl<T0: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, T5: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4, T5) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, T5: EncodeArgument, T6: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4, T5, T6) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, T5: EncodeArgument, T6: EncodeArgument, T7: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4, T5, T6, T7) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, T5: EncodeArgument, T6: EncodeArgument, T7: EncodeArgument, T8: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4, T5, T6, T7, T8) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, T5: EncodeArgument, T6: EncodeArgument, T7: EncodeArgument, T8: EncodeArgument, T9: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, T5: EncodeArgument, T6: EncodeArgument, T7: EncodeArgument, T8: EncodeArgument, T9: EncodeArgument, T10: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> R + '_

Source§

impl<T0: EncodeArgument, T1: EncodeArgument, T2: EncodeArgument, T3: EncodeArgument, T4: EncodeArgument, T5: EncodeArgument, T6: EncodeArgument, T7: EncodeArgument, T8: EncodeArgument, T9: EncodeArgument, T10: EncodeArgument, T11: EncodeArgument, R: EncodeReturn> BlockFn for dyn Fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R + '_

Implementors§