1#![cfg_attr(not(feature = "std"), no_std)]
2#![warn(clippy::pedantic)]
3
4#[cfg(not(feature = "std"))]
5extern crate alloc;
6
7mod prelude;
8
9pub mod connection;
10pub mod constants;
11pub mod encoding;
12pub mod error;
13pub mod error_classification;
14pub mod flags;
15pub mod keepalive;
16pub mod packet;
17pub mod packet_id;
18pub mod protocol;
19pub mod qos2;
20pub mod session;
21pub mod time;
22pub mod topic_matching;
23pub mod transport;
24pub mod types;
25pub mod validation;
26
27pub use error::{MqttError, Result};
28pub use flags::{ConnAckFlags, ConnectFlags, PublishFlags};
29pub use packet::{FixedHeader, Packet, PacketType};
30pub use protocol::v5::properties::{Properties, PropertyId, PropertyValue, PropertyValueType};
31pub use protocol::v5::reason_codes::ReasonCode;
32pub use transport::Transport;
33pub use types::{
34 ConnectOptions, ConnectProperties, ConnectResult, Message, MessageProperties, ProtocolVersion,
35 PublishOptions, PublishProperties, PublishResult, QoS, RetainHandling, SubscribeOptions,
36 WillMessage, WillProperties,
37};
38pub use validation::{
39 is_valid_client_id, is_valid_topic_filter, is_valid_topic_name, parse_shared_subscription,
40 strip_shared_subscription_prefix, topic_matches_filter, validate_client_id,
41 validate_topic_filter, validate_topic_name, RestrictiveValidator, StandardValidator,
42 TopicValidator,
43};
44
45pub use session::{
46 ExpiringMessage, FlowControlConfig, FlowControlStats, LimitsConfig, LimitsManager,
47 MessageQueue, QueueResult, QueueStats, QueuedMessage, Subscription, SubscriptionManager,
48 TopicAliasManager,
49};
50
51pub use connection::{
52 ConnectionEvent, ConnectionInfo, ConnectionState, ConnectionStateMachine, DisconnectReason,
53 ReconnectConfig,
54};
55
56pub use keepalive::{calculate_ping_interval, is_keepalive_timeout, KeepaliveConfig};
57
58pub use error_classification::RecoverableError;