mqtt5_protocol/
lib.rs

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;