Skip to main content

Arity

Trait Arity 

Source
pub trait Arity: 'static {
    type Container<'a, X: 'a>: 'a;
    type AfterDrop: Arity;
    type AfterOrderedExpansion: Arity;
    type AfterUnorderedExpansion: Arity;

    // Required methods
    fn map_elements<'a, X: 'a, Y: 'a>(
        container: Self::Container<'a, X>,
        function: impl Fn(X) -> Y + 'a,
    ) -> Self::Container<'a, Y>;
    fn filter_map_elements<'a, X: 'a, Y: 'a>(
        container: Self::Container<'a, X>,
        function: impl Fn(X) -> Option<Y> + 'a,
    ) -> <Self::AfterDrop as Arity>::Container<'a, Y>;
    fn flat_map_ordered_elements<'a, X: 'a, Y: 'a>(
        container: Self::Container<'a, X>,
        function: impl Fn(X) -> Vec<Y> + 'a,
    ) -> <Self::AfterOrderedExpansion as Arity>::Container<'a, Y>;
    fn flat_map_unordered_elements<'a, X: 'a, Y: 'a>(
        container: Self::Container<'a, X>,
        function: impl Fn(X) -> Vec<Y> + 'a,
    ) -> <Self::AfterUnorderedExpansion as Arity>::Container<'a, Y>;
}

Required Associated Types§

Required Methods§

Source

fn map_elements<'a, X: 'a, Y: 'a>( container: Self::Container<'a, X>, function: impl Fn(X) -> Y + 'a, ) -> Self::Container<'a, Y>

Source

fn filter_map_elements<'a, X: 'a, Y: 'a>( container: Self::Container<'a, X>, function: impl Fn(X) -> Option<Y> + 'a, ) -> <Self::AfterDrop as Arity>::Container<'a, Y>

Source

fn flat_map_ordered_elements<'a, X: 'a, Y: 'a>( container: Self::Container<'a, X>, function: impl Fn(X) -> Vec<Y> + 'a, ) -> <Self::AfterOrderedExpansion as Arity>::Container<'a, Y>

Source

fn flat_map_unordered_elements<'a, X: 'a, Y: 'a>( container: Self::Container<'a, X>, function: impl Fn(X) -> Vec<Y> + 'a, ) -> <Self::AfterUnorderedExpansion as Arity>::Container<'a, Y>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§