1 use crate::sign::{ChannelSigner, SignerProvider};
4 pub(crate) enum ChannelSignerType<SP: Deref>
6 SP::Target: SignerProvider,
8 // in practice, this will only ever be an EcdsaChannelSigner (specifically, Writeable)
9 Ecdsa(<SP::Target as SignerProvider>::EcdsaSigner),
11 Taproot(<SP::Target as SignerProvider>::TaprootSigner),
14 impl<SP: Deref> ChannelSignerType<SP>
16 SP::Target: SignerProvider,
18 pub(crate) fn as_ref(&self) -> &dyn ChannelSigner {
20 ChannelSignerType::Ecdsa(ecs) => ecs,
22 ChannelSignerType::Taproot(tcs) => tcs,
26 pub(crate) fn as_mut(&mut self) -> &mut dyn ChannelSigner {
28 ChannelSignerType::Ecdsa(ecs) => ecs,
30 ChannelSignerType::Taproot(tcs) => tcs,
35 pub(crate) fn as_ecdsa(&self) -> Option<&<SP::Target as SignerProvider>::EcdsaSigner> {
37 ChannelSignerType::Ecdsa(ecs) => Some(ecs),
43 pub(crate) fn as_mut_ecdsa(
45 ) -> Option<&mut <SP::Target as SignerProvider>::EcdsaSigner> {
47 ChannelSignerType::Ecdsa(ecs) => Some(ecs),