Trait Foldable

Source
pub trait Foldable<T, U> {
    type Mapped;

    // Required method
    fn fold<F>(
        self,
        folder: &mut F,
    ) -> Result<Self::Mapped, <F as Fold<T>>::Error>
       where F: Fold<T, TargetU = U> + ?Sized;
}

Required Associated Types§

Required Methods§

Source

fn fold<F>(self, folder: &mut F) -> Result<Self::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized,

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<T, U> Foldable<T, U> for bool

Source§

type Mapped = bool

Source§

fn fold<F>( self, _folder: &mut F, ) -> Result<<bool as Foldable<T, U>>::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized,

Source§

impl<T, U> Foldable<T, U> for String

Source§

type Mapped = String

Source§

fn fold<F>( self, _folder: &mut F, ) -> Result<<String as Foldable<T, U>>::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized,

Source§

impl<T, U, X> Foldable<T, U> for Option<X>
where X: Foldable<T, U>,

Source§

type Mapped = Option<<X as Foldable<T, U>>::Mapped>

Source§

fn fold<F>( self, folder: &mut F, ) -> Result<<Option<X> as Foldable<T, U>>::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized,

Source§

impl<T, U, X> Foldable<T, U> for Box<X>
where X: Foldable<T, U>,

Source§

type Mapped = Box<<X as Foldable<T, U>>::Mapped>

Source§

fn fold<F>( self, folder: &mut F, ) -> Result<<Box<X> as Foldable<T, U>>::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized,

Source§

impl<T, U, X> Foldable<T, U> for Vec<X>
where X: Foldable<T, U>,

Source§

type Mapped = Vec<<X as Foldable<T, U>>::Mapped>

Source§

fn fold<F>( self, folder: &mut F, ) -> Result<<Vec<X> as Foldable<T, U>>::Mapped, <F as Fold<T>>::Error>
where F: Fold<T, TargetU = U> + ?Sized,

Implementors§

Source§

impl<T, U> Foldable<T, U> for ConversionFlag

Source§

impl<T, U> Foldable<T, U> for BoolOp

Source§

impl<T, U> Foldable<T, U> for CmpOp

Source§

impl<T, U> Foldable<T, U> for Constant

Source§

impl<T, U> Foldable<T, U> for ExceptHandler<T>

Source§

impl<T, U> Foldable<T, U> for Expr<T>

Source§

impl<T, U> Foldable<T, U> for ExprContext

Source§

impl<T, U> Foldable<T, U> for Mod<T>

Source§

impl<T, U> Foldable<T, U> for Operator

Source§

impl<T, U> Foldable<T, U> for Pattern<T>

Source§

impl<T, U> Foldable<T, U> for Stmt<T>

Source§

impl<T, U> Foldable<T, U> for TypeIgnore<T>

Source§

impl<T, U> Foldable<T, U> for TypeParam<T>

Source§

impl<T, U> Foldable<T, U> for UnaryOp

Source§

impl<T, U> Foldable<T, U> for Alias<T>

Source§

impl<T, U> Foldable<T, U> for Arg<T>

Source§

impl<T, U> Foldable<T, U> for ArgWithDefault<T>

Source§

impl<T, U> Foldable<T, U> for Arguments<T>

Source§

impl<T, U> Foldable<T, U> for Comprehension<T>

Source§

impl<T, U> Foldable<T, U> for ExceptHandlerExceptHandler<T>

Source§

impl<T, U> Foldable<T, U> for ExprAttribute<T>

Source§

impl<T, U> Foldable<T, U> for ExprAwait<T>

Source§

impl<T, U> Foldable<T, U> for ExprBinOp<T>

Source§

impl<T, U> Foldable<T, U> for ExprBoolOp<T>

Source§

impl<T, U> Foldable<T, U> for ExprCall<T>

Source§

impl<T, U> Foldable<T, U> for ExprCompare<T>

Source§

impl<T, U> Foldable<T, U> for ExprConstant<T>

Source§

impl<T, U> Foldable<T, U> for ExprDict<T>

Source§

impl<T, U> Foldable<T, U> for ExprDictComp<T>

Source§

impl<T, U> Foldable<T, U> for ExprFormattedValue<T>

Source§

impl<T, U> Foldable<T, U> for ExprGeneratorExp<T>

Source§

impl<T, U> Foldable<T, U> for ExprIfExp<T>

Source§

impl<T, U> Foldable<T, U> for ExprJoinedStr<T>

Source§

impl<T, U> Foldable<T, U> for ExprLambda<T>

Source§

impl<T, U> Foldable<T, U> for ExprList<T>

Source§

impl<T, U> Foldable<T, U> for ExprListComp<T>

Source§

impl<T, U> Foldable<T, U> for ExprName<T>

Source§

impl<T, U> Foldable<T, U> for ExprNamedExpr<T>

Source§

impl<T, U> Foldable<T, U> for ExprSet<T>

Source§

impl<T, U> Foldable<T, U> for ExprSetComp<T>

Source§

impl<T, U> Foldable<T, U> for ExprSlice<T>

Source§

impl<T, U> Foldable<T, U> for ExprStarred<T>

Source§

impl<T, U> Foldable<T, U> for ExprSubscript<T>

Source§

impl<T, U> Foldable<T, U> for ExprTuple<T>

Source§

impl<T, U> Foldable<T, U> for ExprUnaryOp<T>

Source§

impl<T, U> Foldable<T, U> for ExprYield<T>

Source§

impl<T, U> Foldable<T, U> for ExprYieldFrom<T>

Source§

impl<T, U> Foldable<T, U> for Identifier

Source§

impl<T, U> Foldable<T, U> for Int

Source§

impl<T, U> Foldable<T, U> for Keyword<T>

Source§

impl<T, U> Foldable<T, U> for MatchCase<T>

Source§

impl<T, U> Foldable<T, U> for ModExpression<T>

Source§

impl<T, U> Foldable<T, U> for ModFunctionType<T>

Source§

impl<T, U> Foldable<T, U> for ModInteractive<T>

Source§

impl<T, U> Foldable<T, U> for ModModule<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchAs<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchClass<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchMapping<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchOr<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchSequence<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchSingleton<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchStar<T>

Source§

impl<T, U> Foldable<T, U> for PatternMatchValue<T>

Source§

impl<T, U> Foldable<T, U> for StmtAnnAssign<T>

Source§

impl<T, U> Foldable<T, U> for StmtAssert<T>

Source§

impl<T, U> Foldable<T, U> for StmtAssign<T>

Source§

impl<T, U> Foldable<T, U> for StmtAsyncFor<T>

Source§

impl<T, U> Foldable<T, U> for StmtAsyncFunctionDef<T>

Source§

impl<T, U> Foldable<T, U> for StmtAsyncWith<T>

Source§

impl<T, U> Foldable<T, U> for StmtAugAssign<T>

Source§

impl<T, U> Foldable<T, U> for StmtBreak<T>

Source§

impl<T, U> Foldable<T, U> for StmtClassDef<T>

Source§

impl<T, U> Foldable<T, U> for StmtContinue<T>

Source§

impl<T, U> Foldable<T, U> for StmtDelete<T>

Source§

impl<T, U> Foldable<T, U> for StmtExpr<T>

Source§

impl<T, U> Foldable<T, U> for StmtFor<T>

Source§

impl<T, U> Foldable<T, U> for StmtFunctionDef<T>

Source§

impl<T, U> Foldable<T, U> for StmtGlobal<T>

Source§

impl<T, U> Foldable<T, U> for StmtIf<T>

Source§

impl<T, U> Foldable<T, U> for StmtImport<T>

Source§

impl<T, U> Foldable<T, U> for StmtImportFrom<T>

Source§

impl<T, U> Foldable<T, U> for StmtMatch<T>

Source§

impl<T, U> Foldable<T, U> for StmtNonlocal<T>

Source§

impl<T, U> Foldable<T, U> for StmtPass<T>

Source§

impl<T, U> Foldable<T, U> for StmtRaise<T>

Source§

impl<T, U> Foldable<T, U> for StmtReturn<T>

Source§

impl<T, U> Foldable<T, U> for StmtTry<T>

Source§

impl<T, U> Foldable<T, U> for StmtTryStar<T>

Source§

impl<T, U> Foldable<T, U> for StmtTypeAlias<T>

Source§

impl<T, U> Foldable<T, U> for StmtWhile<T>

Source§

impl<T, U> Foldable<T, U> for StmtWith<T>

Source§

impl<T, U> Foldable<T, U> for TypeIgnoreTypeIgnore<T>

Source§

impl<T, U> Foldable<T, U> for TypeParamParamSpec<T>

Source§

impl<T, U> Foldable<T, U> for TypeParamTypeVar<T>

Source§

impl<T, U> Foldable<T, U> for TypeParamTypeVarTuple<T>

Source§

impl<T, U> Foldable<T, U> for WithItem<T>