Skip to main content

Transform

Trait Transform 

Source
pub trait Transform: Sized {
    type Canon: AnonType;

    // Required methods
    fn from_canon(anon: Self::Canon) -> Self;
    fn into_canon(self) -> Self::Canon;

    // Provided methods
    fn transform<O: Transform, N>(self) -> O
       where Self::Canon: Shuffle<O::Canon, N> { ... }
    fn deep_transform<O: Transform, N>(self) -> O
       where Self::Canon: DeepTransform<O::Canon, N> { ... }
}

Required Associated Types§

Required Methods§

Source

fn from_canon(anon: Self::Canon) -> Self

Source

fn into_canon(self) -> Self::Canon

Provided Methods§

Source

fn transform<O: Transform, N>(self) -> O
where Self::Canon: Shuffle<O::Canon, N>,

Source

fn deep_transform<O: Transform, N>(self) -> O
where Self::Canon: DeepTransform<O::Canon, N>,

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 Transform for Nil

Source§

impl<T, R> Transform for Cons<T, R>
where Self: AnonType,

Source§

type Canon = Cons<T, R>