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 model;
6mod publisher;
7pub mod test;
8
9#[cfg(unix)]
10pub use consumer::DmqConsumerServerPallas;
11pub use consumer::{DmqConsumerClient, DmqConsumerClientPallas, DmqConsumerServer};
12pub use model::{DmqMessage, DmqMessageBuilder};
13#[cfg(unix)]
14pub use publisher::DmqPublisherServerPallas;
15pub use publisher::{DmqPublisherClient, DmqPublisherClientPallas, DmqPublisherServer};
16
17#[cfg(test)]
18pub(crate) mod test_tools {
19    use std::io;
20    use std::sync::Arc;
21
22    use slog::{Drain, Logger};
23    use slog_async::Async;
24    use slog_term::{CompactFormat, PlainDecorator};
25
26    pub struct TestLogger;
27
28    impl TestLogger {
29        fn from_writer<W: io::Write + Send + 'static>(writer: W) -> Logger {
30            let decorator = PlainDecorator::new(writer);
31            let drain = CompactFormat::new(decorator).build().fuse();
32            let drain = Async::new(drain).build().fuse();
33            Logger::root(Arc::new(drain), slog::o!())
34        }
35
36        pub fn stdout() -> Logger {
37            Self::from_writer(slog_term::TestStdoutWriter)
38        }
39    }
40}