Skip to content

Commit

Permalink
Merge pull request #1618 from wpaulino/gossip-sync-constructors
Browse files Browse the repository at this point in the history
Add convenient GossipSync variant constructors
  • Loading branch information
TheBlueMatt committed Jul 15, 2022
2 parents f75b6cb + 6877539 commit 9d35026
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions lightning-background-processor/src/lib.rs
Expand Up @@ -137,6 +137,55 @@ where A::Target: chain::Access, L::Target: Logger {
}
}

/// (C-not exported) as the bindings concretize everything and have constructors for us
impl<P: Deref<Target = P2PGossipSync<G, A, L>>, G: Deref<Target = NetworkGraph<L>>, A: Deref, L: Deref>
GossipSync<P, &RapidGossipSync<G, L>, G, A, L>
where
A::Target: chain::Access,
L::Target: Logger,
{
/// Initializes a new [`GossipSync::P2P`] variant.
pub fn p2p(gossip_sync: P) -> Self {
GossipSync::P2P(gossip_sync)
}
}

/// (C-not exported) as the bindings concretize everything and have constructors for us
impl<'a, R: Deref<Target = RapidGossipSync<G, L>>, G: Deref<Target = NetworkGraph<L>>, L: Deref>
GossipSync<
&P2PGossipSync<G, &'a (dyn chain::Access + Send + Sync), L>,
R,
G,
&'a (dyn chain::Access + Send + Sync),
L,
>
where
L::Target: Logger,
{
/// Initializes a new [`GossipSync::Rapid`] variant.
pub fn rapid(gossip_sync: R) -> Self {
GossipSync::Rapid(gossip_sync)
}
}

/// (C-not exported) as the bindings concretize everything and have constructors for us
impl<'a, L: Deref>
GossipSync<
&P2PGossipSync<&'a NetworkGraph<L>, &'a (dyn chain::Access + Send + Sync), L>,
&RapidGossipSync<&'a NetworkGraph<L>, L>,
&'a NetworkGraph<L>,
&'a (dyn chain::Access + Send + Sync),
L,
>
where
L::Target: Logger,
{
/// Initializes a new [`GossipSync::None`] variant.
pub fn none() -> Self {
GossipSync::None
}
}

/// Decorates an [`EventHandler`] with common functionality provided by standard [`EventHandler`]s.
struct DecoratingEventHandler<
'a,
Expand Down

0 comments on commit 9d35026

Please sign in to comment.