Trait Translate

Source
pub trait Translate<T>
where T: Translator<Source = Self::Source>,
{ type Source: 'static + Flavor; type Out; // Required method fn translate( self, diag: &mut Diagnostics, translator: &T, ) -> Result<Self::Out>; }
Expand description

A translated type.

Required Associated Types§

Source

type Source: 'static + Flavor

Source

type Out

Required Methods§

Source

fn translate(self, diag: &mut Diagnostics, translator: &T) -> Result<Self::Out>

Translate into different flavor.

Implementations on Foreign Types§

Source§

impl<T, I> Translate<T> for Option<I>
where I: Translate<T>, T: Translator<Source = I::Source>,

Source§

fn translate( self, diag: &mut Diagnostics, translator: &T, ) -> Result<Option<I::Out>>

Translate into different flavor.

Source§

type Source = <I as Translate<T>>::Source

Source§

type Out = Option<<I as Translate<T>>::Out>

Source§

impl<T, I> Translate<T> for Vec<I>
where I: Translate<T>, T: Translator<Source = I::Source>,

Source§

fn translate( self, diag: &mut Diagnostics, translator: &T, ) -> Result<Vec<I::Out>>

Translate into different flavor.

Source§

type Source = <I as Translate<T>>::Source

Source§

type Out = Vec<<I as Translate<T>>::Out>

Implementors§

Source§

impl<F, T> Translate<T> for RpChannel<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpDecl<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpPathPart<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpVariants<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpEndpoint<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpEndpointArgument<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpEndpointHttp<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpEnumBody<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpField<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpFile<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpInterfaceBody<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpName<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpPathSpec<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpPathStep<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpServiceBody<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpSubType<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpTupleBody<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T> Translate<T> for RpTypeBody<F>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<F, T, V> Translate<T> for RpVariant<F, V>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<T, F> Translate<T> for Fields<F::Field>
where F: Flavor + 'static, T: Translator<Source = F>,

Source§

impl<T, I> Translate<T> for Loc<I>
where I: Translate<T>, T: Translator<Source = I::Source>,

Source§

type Source = <I as Translate<T>>::Source

Source§

type Out = Loc<<I as Translate<T>>::Out>