Trait RecursiveExt

Source
pub trait RecursiveExt: Recursive {
    // Required methods
    fn fold_recursive<Out, F: FnMut(<<Self as Recursive>::FunctorToken as Functor>::Layer<Out>) -> Out>(
        self,
        collapse_layer: F,
    ) -> Out;
    fn expand_and_collapse<Seed, Out>(
        seed: Seed,
        expand_layer: impl FnMut(Seed) -> <<Self as Recursive>::FunctorToken as Functor>::Layer<Seed>,
        collapse_layer: impl FnMut(<<Self as Recursive>::FunctorToken as Functor>::Layer<Out>) -> Out,
    ) -> Out;
}

Required Methods§

Source

fn fold_recursive<Out, F: FnMut(<<Self as Recursive>::FunctorToken as Functor>::Layer<Out>) -> Out>( self, collapse_layer: F, ) -> Out

Source

fn expand_and_collapse<Seed, Out>( seed: Seed, expand_layer: impl FnMut(Seed) -> <<Self as Recursive>::FunctorToken as Functor>::Layer<Seed>, collapse_layer: impl FnMut(<<Self as Recursive>::FunctorToken as Functor>::Layer<Out>) -> Out, ) -> Out

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.

Implementors§

Source§

impl<X> RecursiveExt for X
where X: Recursive,