pub trait TranslateExt<PExt, QExt>
where PExt: Extension, QExt: Extension,
{ type Output; // Required method fn translate_ext<T, E>(&self, translator: &mut T) -> Result<Self::Output, E> where T: ExtTranslator<PExt, QExt, E>; }
Expand description

Converts a descriptor using abstract keys to one using specific keys. Uses translator t to do the actual translation function calls.

Required Associated Types§

source

type Output

The associated output type.

Required Methods§

source

fn translate_ext<T, E>(&self, translator: &mut T) -> Result<Self::Output, E>
where T: ExtTranslator<PExt, QExt, E>,

Translates a struct from one generic to another where the translations for Pk are provided by the given Translator.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<PArg, QArg> TranslateExt<CovOps<PArg>, CovOps<QArg>> for CovOps<PArg>
where CovOps<PArg>: Extension, CovOps<QArg>: Extension, PArg: ExtParam, QArg: ExtParam,

§

type Output = CovOps<QArg>

source§

impl<PArg, QArg> TranslateExt<CovenantExt<PArg>, CovenantExt<QArg>> for CovenantExt<PArg>
where CovenantExt<PArg>: Extension, CovenantExt<QArg>: Extension, PArg: ExtParam, QArg: ExtParam,

§

type Output = CovenantExt<QArg>

source§

impl<PArg, QArg> TranslateExt<CheckSigFromStack<PArg>, CheckSigFromStack<QArg>> for CheckSigFromStack<PArg>

source§

impl<PExt, QExt> TranslateExt<PExt, QExt> for NoExt
where PExt: Extension, QExt: Extension,

source§

impl<PExt, QExt, Pk> TranslateExt<PExt, QExt> for Descriptor<Pk, PExt>
where PExt: Extension + TranslateExt<PExt, QExt, Output = QExt>, QExt: Extension, Pk: MiniscriptKey,

§

type Output = Descriptor<Pk, QExt>

source§

impl<PExt, QExt, Pk> TranslateExt<PExt, QExt> for Tr<Pk, PExt>
where PExt: Extension + TranslateExt<PExt, QExt, Output = QExt>, QExt: Extension, Pk: MiniscriptKey,

§

type Output = Tr<Pk, QExt>

source§

impl<Pk, Ctx, Ext, ExtQ> TranslateExt<Ext, ExtQ> for Miniscript<Pk, Ctx, Ext>
where Pk: MiniscriptKey, Ctx: ScriptContext, Ext: Extension + TranslateExt<Ext, ExtQ, Output = ExtQ>, ExtQ: Extension,

§

type Output = Miniscript<Pk, Ctx, ExtQ>

source§

impl<Pk, Ctx, Ext, QExt> TranslateExt<Ext, QExt> for Terminal<Pk, Ctx, Ext>
where Pk: MiniscriptKey, Ctx: ScriptContext, Ext: Extension + TranslateExt<Ext, QExt, Output = QExt>, QExt: Extension,

§

type Output = Terminal<Pk, Ctx, <Ext as TranslateExt<Ext, QExt>>::Output>

source§

impl<Pk, Ext, ExtQ> TranslateExt<Ext, ExtQ> for LegacyCSFSCov<Pk, Ext>
where Pk: MiniscriptKey, Ext: Extension + TranslateExt<Ext, ExtQ, Output = ExtQ>, ExtQ: Extension,

§

type Output = LegacyCSFSCov<Pk, ExtQ>