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