Wrappable

Trait Wrappable 

Source
pub trait Wrappable:
    Clone
    + Debug
    + Decompose
    + Send {
    type B: Backend;
    type With<C: Backend>: Wrappable<B = C, With<C> = Self::With<C>> + Wrappable<B = C, With<Self::B> = Self>;
}
Expand description

higher kinded type trait to allow rewrapping burn modules in different backends to implement some wrapper features

Required Associated Types§

Source

type B: Backend

Source

type With<C: Backend>: Wrappable<B = C, With<C> = Self::With<C>> + Wrappable<B = C, With<Self::B> = 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<A: Wrappable<B = B>, B: Backend, D: Wrappable<B = B>> Wrappable for (A, D)

Source§

type B = B

Source§

type With<C: Backend> = (<A as Wrappable>::With<C>, <D as Wrappable>::With<C>)

Source§

impl<A: Wrappable<B = B>, B: Backend, D: Wrappable<B = B>, E: Wrappable<B = B>> Wrappable for (A, D, E)

Source§

type B = B

Source§

type With<C: Backend> = (<A as Wrappable>::With<C>, <D as Wrappable>::With<C>, <E as Wrappable>::With<C>)

Source§

impl<A: Wrappable<B = B>, B: Backend, D: Wrappable<B = B>, E: Wrappable<B = B>, F: Wrappable<B = B>> Wrappable for (A, D, E, F)

Source§

type B = B

Source§

type With<C: Backend> = (<A as Wrappable>::With<C>, <D as Wrappable>::With<C>, <E as Wrappable>::With<C>, <F as Wrappable>::With<C>)

Source§

impl<A: Wrappable<B = B>, B: Backend, D: Wrappable<B = B>, E: Wrappable<B = B>, F: Wrappable<B = B>, G: Wrappable<B = B>> Wrappable for (A, D, E, F, G)

Source§

type B = B

Source§

type With<C: Backend> = (<A as Wrappable>::With<C>, <D as Wrappable>::With<C>, <E as Wrappable>::With<C>, <F as Wrappable>::With<C>, <G as Wrappable>::With<C>)

Source§

impl<A: Wrappable<B = B>, B: Backend, D: Wrappable<B = B>, E: Wrappable<B = B>, F: Wrappable<B = B>, G: Wrappable<B = B>, H: Wrappable<B = B>> Wrappable for (A, D, E, F, G, H)

Source§

type B = B

Source§

type With<C: Backend> = (<A as Wrappable>::With<C>, <D as Wrappable>::With<C>, <E as Wrappable>::With<C>, <F as Wrappable>::With<C>, <G as Wrappable>::With<C>, <H as Wrappable>::With<C>)

Source§

impl<A: Wrappable<B = B>, B: Backend, D: Wrappable<B = B>, E: Wrappable<B = B>, F: Wrappable<B = B>, G: Wrappable<B = B>, H: Wrappable<B = B>, I: Wrappable<B = B>> Wrappable for (A, D, E, F, G, H, I)

Source§

type B = B

Source§

type With<C: Backend> = (<A as Wrappable>::With<C>, <D as Wrappable>::With<C>, <E as Wrappable>::With<C>, <F as Wrappable>::With<C>, <G as Wrappable>::With<C>, <H as Wrappable>::With<C>, <I as Wrappable>::With<C>)

Source§

impl<A: Wrappable<B = B>, B: Backend, D: Wrappable<B = B>, E: Wrappable<B = B>, F: Wrappable<B = B>, G: Wrappable<B = B>, H: Wrappable<B = B>, I: Wrappable<B = B>, J: Wrappable<B = B>> Wrappable for (A, D, E, F, G, H, I, J)

Source§

type B = B

Source§

type With<C: Backend> = (<A as Wrappable>::With<C>, <D as Wrappable>::With<C>, <E as Wrappable>::With<C>, <F as Wrappable>::With<C>, <G as Wrappable>::With<C>, <H as Wrappable>::With<C>, <I as Wrappable>::With<C>, <J as Wrappable>::With<C>)

Implementors§

Source§

impl<A: Wrappable<B = B>, B: Backend, X: Wrappable<B = B>, Y: Wrappable<B = B>> Wrappable for SetType<A, X, Y>

Source§

type B = B

Source§

type With<C: Backend> = SetType<<A as Wrappable>::With<C>, <X as Wrappable>::With<C>, <Y as Wrappable>::With<C>>

Source§

impl<B: Backend> Wrappable for Layer<B>

Source§

type B = B

Source§

type With<C: Backend> = Layer<C>

Source§

impl<B: Backend> Wrappable for Value<B>

Source§

type B = B

Source§

type With<C: Backend> = Value<C>

Source§

impl<B: Backend> Wrappable for Identity<B>

Source§

type B = B

Source§

type With<C: Backend> = Identity<C>

Source§

impl<B: Backend> Wrappable for LossOutput<B>

Source§

impl<W: Wrappable> Wrappable for Abs<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Abs<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Mean<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Mean<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for SquaredError<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = SquaredError<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for AccQ<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = AccQ<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Choose<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Choose<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for CrossEntropy<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = CrossEntropy<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Duplicate<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Duplicate<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Map<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Map<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Sequential<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Sequential<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Zip<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Zip<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Cat<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Cat<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Graph<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Graph<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Inner<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Inner<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Unvec<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Unvec<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Classification<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Classification<<W as Wrappable>::With<C>>

Source§

impl<W: Wrappable> Wrappable for Regression<W>

Source§

type B = <W as Wrappable>::B

Source§

type With<C: Backend> = Regression<<W as Wrappable>::With<C>>