Trait TranslateExt

Source
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.

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<PArg, QArg> TranslateExt<CovOps<PArg>, CovOps<QArg>> for CovOps<PArg>
where CovOps<PArg>: Extension, CovOps<QArg>: Extension, PArg: ExtParam, QArg: ExtParam,

Source§

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,

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,

Source§

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,

Source§

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,

Source§

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,

Source§

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,

Source§

type Output = LegacyCSFSCov<Pk, ExtQ>