spirt::transform

Trait InnerTransform

Source
pub trait InnerTransform: Sized {
    // Required method
    fn inner_transform_with(
        &self,
        transformer: &mut impl Transformer,
    ) -> Transformed<Self>;
}
Expand description

Trait implemented on “transformable” types, to further “elaborate” a type by transforming its “interior” (i.e. variants and/or fields).

That is, an impl InnerTransform for X will call the relevant Transformer method for each X field, effectively performing a single level of a deep transform. Also, if Transformer::transform_X exists for a given X, its default should be to call X::inner_transform_with (i.e. so that transforming is mostly-deep by default).

Required Methods§

Source

fn inner_transform_with( &self, transformer: &mut impl Transformer, ) -> Transformed<Self>

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: InnerTransform> InnerTransform for Rc<T>

Source§

fn inner_transform_with( &self, transformer: &mut impl Transformer, ) -> Transformed<Self>

Implementors§