Allow log threshold configuration.
[rapid-gossip-sync-server] / src / types.rs
1 use std::sync::Arc;
2
3 use lightning::sign::KeysManager;
4 use lightning::ln::msgs::{ChannelAnnouncement, ChannelUpdate};
5 use lightning::ln::peer_handler::{ErroringMessageHandler, IgnoringMessageHandler, PeerManager};
6 use lightning::util::logger::{Logger, Record};
7 use crate::config;
8
9 use crate::downloader::GossipRouter;
10 use crate::verifier::ChainVerifier;
11
12 pub(crate) type GossipChainAccess<L> = Arc<ChainVerifier<L>>;
13 pub(crate) type GossipPeerManager<L> = Arc<PeerManager<lightning_net_tokio::SocketDescriptor, ErroringMessageHandler, Arc<GossipRouter<L>>, IgnoringMessageHandler, L, IgnoringMessageHandler, Arc<KeysManager>>>;
14
15 #[derive(Debug)]
16 pub(crate) enum GossipMessage {
17         ChannelAnnouncement(ChannelAnnouncement),
18         ChannelUpdate(ChannelUpdate),
19 }
20
21 #[derive(Clone, Copy)]
22 pub struct RGSSLogger {}
23
24 impl RGSSLogger {
25         pub fn new() -> RGSSLogger {
26                 Self {}
27         }
28 }
29
30 impl Logger for RGSSLogger {
31         fn log(&self, record: &Record) {
32                 let threshold = config::log_level();
33                 if record.level < threshold {
34                         return;
35                 }
36                 println!("{:<5} [{} : {}, {}] {}", record.level.to_string(), record.module_path, record.file, record.line, record.args);
37         }
38 }