mithril_dmq/
lib.rs

1#![warn(missing_docs)]
2//! This crate provides mechanisms to publish and consume messages of a Decentralized Message Queue network through a DMQ node.
3
4mod consumer;
5mod message;
6mod publisher;
7pub mod test;
8
9pub use consumer::{DmqConsumer, DmqConsumerPallas};
10pub use message::DmqMessageBuilder;
11pub use publisher::{DmqPublisher, DmqPublisherPallas};
12
13#[cfg(test)]
14pub(crate) mod test_tools {
15    use std::io;
16    use std::sync::Arc;
17
18    use slog::{Drain, Logger};
19    use slog_async::Async;
20    use slog_term::{CompactFormat, PlainDecorator};
21
22    pub struct TestLogger;
23
24    impl TestLogger {
25        fn from_writer<W: io::Write + Send + 'static>(writer: W) -> Logger {
26            let decorator = PlainDecorator::new(writer);
27            let drain = CompactFormat::new(decorator).build().fuse();
28            let drain = Async::new(drain).build().fuse();
29            Logger::root(Arc::new(drain), slog::o!())
30        }
31
32        pub fn stdout() -> Logger {
33            Self::from_writer(slog_term::TestStdoutWriter)
34        }
35    }
36}