mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-03-10 05:33:40 +01:00
Define a default MessageRouter implementation
Otherwise, users need to define one when using "Simple" type aliases.
This commit is contained in:
parent
bd12067777
commit
129dd30c45
3 changed files with 20 additions and 10 deletions
|
@ -519,9 +519,8 @@ use core::task;
|
||||||
/// # type MyUtxoLookup = dyn lightning::routing::utxo::UtxoLookup + Send + Sync;
|
/// # type MyUtxoLookup = dyn lightning::routing::utxo::UtxoLookup + Send + Sync;
|
||||||
/// # type MyFilter = dyn lightning::chain::Filter + Send + Sync;
|
/// # type MyFilter = dyn lightning::chain::Filter + Send + Sync;
|
||||||
/// # type MyLogger = dyn lightning::util::logger::Logger + Send + Sync;
|
/// # type MyLogger = dyn lightning::util::logger::Logger + Send + Sync;
|
||||||
/// # type MyMessageRouter = dyn lightning::onion_message::MessageRouter + Send + Sync;
|
|
||||||
/// # type MyChainMonitor = lightning::chain::chainmonitor::ChainMonitor<lightning::sign::InMemorySigner, Arc<MyFilter>, Arc<MyBroadcaster>, Arc<MyFeeEstimator>, Arc<MyLogger>, Arc<MyPersister>>;
|
/// # type MyChainMonitor = lightning::chain::chainmonitor::ChainMonitor<lightning::sign::InMemorySigner, Arc<MyFilter>, Arc<MyBroadcaster>, Arc<MyFeeEstimator>, Arc<MyLogger>, Arc<MyPersister>>;
|
||||||
/// # type MyPeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<MySocketDescriptor, MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyUtxoLookup, MyLogger, MyMessageRouter>;
|
/// # type MyPeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<MySocketDescriptor, MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyUtxoLookup, MyLogger>;
|
||||||
/// # type MyNetworkGraph = lightning::routing::gossip::NetworkGraph<Arc<MyLogger>>;
|
/// # type MyNetworkGraph = lightning::routing::gossip::NetworkGraph<Arc<MyLogger>>;
|
||||||
/// # type MyGossipSync = lightning::routing::gossip::P2PGossipSync<Arc<MyNetworkGraph>, Arc<MyUtxoLookup>, Arc<MyLogger>>;
|
/// # type MyGossipSync = lightning::routing::gossip::P2PGossipSync<Arc<MyNetworkGraph>, Arc<MyUtxoLookup>, Arc<MyLogger>>;
|
||||||
/// # type MyChannelManager = lightning::ln::channelmanager::SimpleArcChannelManager<MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyLogger>;
|
/// # type MyChannelManager = lightning::ln::channelmanager::SimpleArcChannelManager<MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyLogger>;
|
||||||
|
|
|
@ -607,11 +607,11 @@ impl Peer {
|
||||||
/// issues such as overly long function definitions.
|
/// issues such as overly long function definitions.
|
||||||
///
|
///
|
||||||
/// This is not exported to bindings users as `Arc`s don't make sense in bindings.
|
/// This is not exported to bindings users as `Arc`s don't make sense in bindings.
|
||||||
pub type SimpleArcPeerManager<SD, M, T, F, C, L, R> = PeerManager<
|
pub type SimpleArcPeerManager<SD, M, T, F, C, L> = PeerManager<
|
||||||
SD,
|
SD,
|
||||||
Arc<SimpleArcChannelManager<M, T, F, L>>,
|
Arc<SimpleArcChannelManager<M, T, F, L>>,
|
||||||
Arc<P2PGossipSync<Arc<NetworkGraph<Arc<L>>>, Arc<C>, Arc<L>>>,
|
Arc<P2PGossipSync<Arc<NetworkGraph<Arc<L>>>, Arc<C>, Arc<L>>>,
|
||||||
Arc<SimpleArcOnionMessenger<L, R>>,
|
Arc<SimpleArcOnionMessenger<L>>,
|
||||||
Arc<L>,
|
Arc<L>,
|
||||||
IgnoringMessageHandler,
|
IgnoringMessageHandler,
|
||||||
Arc<KeysManager>
|
Arc<KeysManager>
|
||||||
|
@ -626,12 +626,12 @@ pub type SimpleArcPeerManager<SD, M, T, F, C, L, R> = PeerManager<
|
||||||
///
|
///
|
||||||
/// This is not exported to bindings users as general type aliases don't make sense in bindings.
|
/// This is not exported to bindings users as general type aliases don't make sense in bindings.
|
||||||
pub type SimpleRefPeerManager<
|
pub type SimpleRefPeerManager<
|
||||||
'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, SD, M, T, F, C, L, R
|
'a, 'b, 'c, 'd, 'e, 'f, 'g, 'h, 'i, 'j, 'k, 'l, 'm, 'n, SD, M, T, F, C, L
|
||||||
> = PeerManager<
|
> = PeerManager<
|
||||||
SD,
|
SD,
|
||||||
&'n SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'm, M, T, F, L>,
|
&'n SimpleRefChannelManager<'a, 'b, 'c, 'd, 'e, 'f, 'g, 'm, M, T, F, L>,
|
||||||
&'f P2PGossipSync<&'g NetworkGraph<&'f L>, &'h C, &'f L>,
|
&'f P2PGossipSync<&'g NetworkGraph<&'f L>, &'h C, &'f L>,
|
||||||
&'i SimpleRefOnionMessenger<'g, 'm, 'n, L, R>,
|
&'i SimpleRefOnionMessenger<'g, 'm, 'n, L>,
|
||||||
&'f L,
|
&'f L,
|
||||||
IgnoringMessageHandler,
|
IgnoringMessageHandler,
|
||||||
&'c KeysManager
|
&'c KeysManager
|
||||||
|
|
|
@ -152,6 +152,17 @@ pub trait MessageRouter {
|
||||||
) -> Result<OnionMessagePath, ()>;
|
) -> Result<OnionMessagePath, ()>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A [`MessageRouter`] that always fails.
|
||||||
|
pub struct DefaultMessageRouter;
|
||||||
|
|
||||||
|
impl MessageRouter for DefaultMessageRouter {
|
||||||
|
fn find_path(
|
||||||
|
&self, _sender: PublicKey, _peers: Vec<PublicKey>, _destination: Destination
|
||||||
|
) -> Result<OnionMessagePath, ()> {
|
||||||
|
Err(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// A path for sending an [`msgs::OnionMessage`].
|
/// A path for sending an [`msgs::OnionMessage`].
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct OnionMessagePath {
|
pub struct OnionMessagePath {
|
||||||
|
@ -598,11 +609,11 @@ where
|
||||||
///
|
///
|
||||||
/// [`SimpleArcChannelManager`]: crate::ln::channelmanager::SimpleArcChannelManager
|
/// [`SimpleArcChannelManager`]: crate::ln::channelmanager::SimpleArcChannelManager
|
||||||
/// [`SimpleArcPeerManager`]: crate::ln::peer_handler::SimpleArcPeerManager
|
/// [`SimpleArcPeerManager`]: crate::ln::peer_handler::SimpleArcPeerManager
|
||||||
pub type SimpleArcOnionMessenger<L, R> = OnionMessenger<
|
pub type SimpleArcOnionMessenger<L> = OnionMessenger<
|
||||||
Arc<KeysManager>,
|
Arc<KeysManager>,
|
||||||
Arc<KeysManager>,
|
Arc<KeysManager>,
|
||||||
Arc<L>,
|
Arc<L>,
|
||||||
Arc<R>,
|
Arc<DefaultMessageRouter>,
|
||||||
IgnoringMessageHandler,
|
IgnoringMessageHandler,
|
||||||
IgnoringMessageHandler
|
IgnoringMessageHandler
|
||||||
>;
|
>;
|
||||||
|
@ -614,11 +625,11 @@ pub type SimpleArcOnionMessenger<L, R> = OnionMessenger<
|
||||||
///
|
///
|
||||||
/// [`SimpleRefChannelManager`]: crate::ln::channelmanager::SimpleRefChannelManager
|
/// [`SimpleRefChannelManager`]: crate::ln::channelmanager::SimpleRefChannelManager
|
||||||
/// [`SimpleRefPeerManager`]: crate::ln::peer_handler::SimpleRefPeerManager
|
/// [`SimpleRefPeerManager`]: crate::ln::peer_handler::SimpleRefPeerManager
|
||||||
pub type SimpleRefOnionMessenger<'a, 'b, 'c, L, R> = OnionMessenger<
|
pub type SimpleRefOnionMessenger<'a, 'b, 'c, L> = OnionMessenger<
|
||||||
&'a KeysManager,
|
&'a KeysManager,
|
||||||
&'a KeysManager,
|
&'a KeysManager,
|
||||||
&'b L,
|
&'b L,
|
||||||
&'c R,
|
&'c DefaultMessageRouter,
|
||||||
IgnoringMessageHandler,
|
IgnoringMessageHandler,
|
||||||
IgnoringMessageHandler
|
IgnoringMessageHandler
|
||||||
>;
|
>;
|
||||||
|
|
Loading…
Add table
Reference in a new issue