From 2fab8873f939242bcde16ee4b9a107d288e8c535 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Thu, 9 Mar 2023 02:52:48 +0000 Subject: [PATCH] Correct `lightning-net-tokio` documentation, remove stale example The `lightning-net-tokio` crate-level example contained a carryover from when it was the primary notifier of the background processor and now just shows an "example" of creating a method to call another method with the same parameters and then do event processing (which doesn't make sense, the BP should do that). Instead, the examples are simply removed and the documentation is tweaked to include recent changes. --- lightning-net-tokio/src/lib.rs | 61 +++++----------------------------- 1 file changed, 8 insertions(+), 53 deletions(-) diff --git a/lightning-net-tokio/src/lib.rs b/lightning-net-tokio/src/lib.rs index aeb5c5b7a..37c9ddad7 100644 --- a/lightning-net-tokio/src/lib.rs +++ b/lightning-net-tokio/src/lib.rs @@ -8,64 +8,19 @@ // licenses. //! A socket handling library for those running in Tokio environments who wish to use -//! rust-lightning with native TcpStreams. +//! rust-lightning with native [`TcpStream`]s. //! //! Designed to be as simple as possible, the high-level usage is almost as simple as "hand over a -//! TcpStream and a reference to a PeerManager and the rest is handled", except for the -//! [Event](../lightning/util/events/enum.Event.html) handling mechanism; see example below. +//! [`TcpStream`] and a reference to a [`PeerManager`] and the rest is handled". //! -//! The PeerHandler, due to the fire-and-forget nature of this logic, must be an Arc, and must use -//! the SocketDescriptor provided here as the PeerHandler's SocketDescriptor. +//! The [`PeerManager`], due to the fire-and-forget nature of this logic, must be a reference, +//! (e.g. an [`Arc`]) and must use the [`SocketDescriptor`] provided here as the [`PeerManager`]'s +//! `SocketDescriptor` implementation. //! -//! Three methods are exposed to register a new connection for handling in tokio::spawn calls; see -//! their individual docs for details. +//! Three methods are exposed to register a new connection for handling in [`tokio::spawn`] calls; +//! see their individual docs for details. //! -//! # Example -//! ``` -//! use std::net::TcpStream; -//! use bitcoin::secp256k1::PublicKey; -//! use lightning::events::{Event, EventHandler, EventsProvider}; -//! use std::net::SocketAddr; -//! use std::sync::Arc; -//! -//! // Define concrete types for our high-level objects: -//! type TxBroadcaster = dyn lightning::chain::chaininterface::BroadcasterInterface + Send + Sync; -//! type FeeEstimator = dyn lightning::chain::chaininterface::FeeEstimator + Send + Sync; -//! type Logger = dyn lightning::util::logger::Logger + Send + Sync; -//! type NodeSigner = dyn lightning::chain::keysinterface::NodeSigner + Send + Sync; -//! type UtxoLookup = dyn lightning::routing::utxo::UtxoLookup + Send + Sync; -//! type ChainFilter = dyn lightning::chain::Filter + Send + Sync; -//! type DataPersister = dyn lightning::chain::chainmonitor::Persist + Send + Sync; -//! type ChainMonitor = lightning::chain::chainmonitor::ChainMonitor, Arc, Arc, Arc, Arc>; -//! type ChannelManager = Arc>; -//! type PeerManager = Arc>; -//! -//! // Connect to node with pubkey their_node_id at addr: -//! async fn connect_to_node(peer_manager: PeerManager, chain_monitor: Arc, channel_manager: ChannelManager, their_node_id: PublicKey, addr: SocketAddr) { -//! lightning_net_tokio::connect_outbound(peer_manager, their_node_id, addr).await; -//! loop { -//! let event_handler = |event: Event| { -//! // Handle the event! -//! }; -//! channel_manager.await_persistable_update(); -//! channel_manager.process_pending_events(&event_handler); -//! chain_monitor.process_pending_events(&event_handler); -//! } -//! } -//! -//! // Begin reading from a newly accepted socket and talk to the peer: -//! async fn accept_socket(peer_manager: PeerManager, chain_monitor: Arc, channel_manager: ChannelManager, socket: TcpStream) { -//! lightning_net_tokio::setup_inbound(peer_manager, socket); -//! loop { -//! let event_handler = |event: Event| { -//! // Handle the event! -//! }; -//! channel_manager.await_persistable_update(); -//! channel_manager.process_pending_events(&event_handler); -//! chain_monitor.process_pending_events(&event_handler); -//! } -//! } -//! ``` +//! [`PeerManager`]: lightning::ln::peer_handler::PeerManager // Prefix these with `rustdoc::` when we update our MSRV to be >= 1.52 to remove warnings. #![deny(broken_intra_doc_links)] -- 2.39.5