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

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

Required Associated Types§

Required Methods§

source

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

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

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

§

type Mapped = bool

source§

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

source§

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

§

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

source§

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

source§

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

§

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

source§

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

source§

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

§

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

source§

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

Implementors§

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 ConversionFlag

source§

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

source§

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

§

type Mapped = Expr<U>

source§

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

source§

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

§

type Mapped = Mod<U>

source§

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

source§

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

§

type Mapped = Pattern<U>

source§

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

§

type Mapped = Stmt<U>

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 Constant

source§

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

source§

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

§

type Mapped = Int

source§

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

§

type Mapped = Alias<U>

source§

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

§

type Mapped = Arg<U>

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>

§

type Mapped = ExprCall<U>

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>

§

type Mapped = ExprDict<U>

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>

§

type Mapped = ExprList<U>

source§

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

source§

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

§

type Mapped = ExprName<U>

source§

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

source§

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

§

type Mapped = ExprSet<U>

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 Keyword<T>

§

type Mapped = Keyword<U>

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>

§

type Mapped = StmtExpr<U>

source§

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

§

type Mapped = StmtFor<U>

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>

§

type Mapped = StmtIf<U>

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>

§

type Mapped = StmtPass<U>

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>

§

type Mapped = StmtTry<U>

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>

§

type Mapped = StmtWith<U>

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>

§

type Mapped = WithItem<U>

source§

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