2 use crate::sign::{ChannelSigner, SignerProvider};
4 pub(crate) enum ChannelSignerType<SP: Deref> where SP::Target: SignerProvider {
5 // in practice, this will only ever be an EcdsaChannelSigner (specifically, Writeable)
6 Ecdsa(<SP::Target as SignerProvider>::EcdsaSigner),
8 Taproot(<SP::Target as SignerProvider>::TaprootSigner),
11 impl<SP: Deref> ChannelSignerType<SP> where SP::Target: SignerProvider {
12 pub(crate) fn as_ref(&self) -> &dyn ChannelSigner {
14 ChannelSignerType::Ecdsa(ecs) => ecs,
16 ChannelSignerType::Taproot(tcs) => tcs,
20 pub(crate) fn as_mut(&mut self) -> &mut dyn ChannelSigner {
22 ChannelSignerType::Ecdsa(ecs) => ecs,
24 ChannelSignerType::Taproot(tcs) => tcs,
29 pub(crate) fn as_ecdsa(&self) -> Option<&<SP::Target as SignerProvider>::EcdsaSigner> {
31 ChannelSignerType::Ecdsa(ecs) => Some(ecs),
37 pub(crate) fn as_mut_ecdsa(&mut self) -> Option<&mut <SP::Target as SignerProvider>::EcdsaSigner> {
39 ChannelSignerType::Ecdsa(ecs) => Some(ecs),