1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//! `sage_mqtt` is a an encoding/decoding library for MQTT 5.0 protocol.
//! The library consists in pivot types, such as `UTF8String` that can be
//! written to and read from a stream as well as converted to standard Rust
//! types.
#![warn(missing_docs)]
#![warn(missing_doc_code_examples)]

#[allow(unused_macros)]
macro_rules! assert_matches {
    ($expression:expr, $( $pattern:pat )|+ $( if $guard: expr )?) => {
        assert!(matches!($expression, $( $pattern )|+ $( if $guard )?))
    }
}

pub(crate) mod codec;
mod control_packets;
mod error;
mod quality_of_service;
mod reason_code;

pub use control_packets::{
    Auth, Authentication, ClientID, ConnAck, Connect, ControlPacket, Disconnect, PubAck, PubComp,
    PubRec, PubRel, Publish, RetainHandling, SubAck, Subscribe, SubscriptionOptions, UnSubAck,
    UnSubscribe, Will,
};
use control_packets::{
    ControlPacketType, FixedHeader, PropertiesDecoder, Property, DEFAULT_MAXIMUM_QOS,
    DEFAULT_PAYLOAD_FORMAT_INDICATOR, DEFAULT_RECEIVE_MAXIMUM, DEFAULT_REQUEST_PROBLEM_INFORMATION,
    DEFAULT_REQUEST_RESPONSE_INFORMATION, DEFAULT_RETAIN_AVAILABLE,
    DEFAULT_SESSION_EXPIRY_INTERVAL, DEFAULT_SHARED_SUBSCRIPTION_AVAILABLE,
    DEFAULT_SUBSCRIPTION_IDENTIFIER_AVAILABLE, DEFAULT_TOPIC_ALIAS_MAXIMUM,
    DEFAULT_WILCARD_SUBSCRIPTION_AVAILABLE, DEFAULT_WILL_DELAY_INTERVAL,
};
pub use error::{Error, Result};
pub use quality_of_service::QoS;
pub use reason_code::ReasonCode;