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.

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>where CheckSigFromStack<PArg>: Extension, CheckSigFromStack<QArg>: Extension, PArg: ExtParam, QArg: ExtParam,

source§

impl<PExt, QExt> TranslateExt<PExt, QExt> for NoExtwhere 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>