Skip to main content

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 bridge;
10pub mod connection;
11pub mod constants;
12pub mod encoding;
13pub mod error;
14pub mod error_classification;
15pub mod flags;
16pub mod keepalive;
17pub mod numeric;
18pub mod packet;
19pub mod packet_id;
20pub mod protocol;
21pub mod qos2;
22pub mod session;
23pub mod time;
24pub mod topic_matching;
25pub mod transport;
26pub mod types;
27pub mod validation;
28
29pub use error::{MqttError, Result};
30pub use flags::{ConnAckFlags, ConnectFlags, PublishFlags};
31pub use packet::{FixedHeader, Packet, PacketType};
32pub use protocol::v5::properties::{Properties, PropertyId, PropertyValue, PropertyValueType};
33pub use protocol::v5::reason_codes::ReasonCode;
34pub use transport::Transport;
35pub use types::{
36    ConnectOptions, ConnectProperties, ConnectResult, Message, MessageProperties, ProtocolVersion,
37    PublishOptions, PublishProperties, PublishResult, QoS, RetainHandling, SubscribeOptions,
38    WillMessage, WillProperties,
39};
40pub use validation::{
41    is_valid_client_id, is_valid_topic_filter, is_valid_topic_name, parse_shared_subscription,
42    strip_shared_subscription_prefix, topic_matches_filter, validate_client_id,
43    validate_topic_filter, validate_topic_name, RestrictiveValidator, StandardValidator,
44    TopicValidator,
45};
46
47pub use session::{
48    ExpiringMessage, FlowControlConfig, FlowControlStats, LimitsConfig, LimitsManager,
49    MessageQueue, QueueResult, QueueStats, QueuedMessage, Subscription, SubscriptionManager,
50    TopicAliasManager,
51};
52
53pub use connection::{
54    ConnectionEvent, ConnectionInfo, ConnectionState, ConnectionStateMachine, DisconnectReason,
55    ReconnectConfig,
56};
57
58pub use keepalive::{calculate_ping_interval, is_keepalive_timeout, KeepaliveConfig};
59
60pub use error_classification::RecoverableError;
61
62pub use numeric::{
63    i32_to_u32_saturating, u128_to_f64_saturating, u128_to_u32_saturating, u128_to_u64_saturating,
64    u64_to_f64_saturating, u64_to_u16_saturating, u64_to_u32_saturating, usize_to_f64_saturating,
65    usize_to_u16_saturating, usize_to_u32_saturating, F64_MAX_SAFE_INTEGER,
66};
67
68pub use bridge::{
69    evaluate_forwarding, BridgeDirection, BridgeStats, ForwardingDecision, TopicMappingCore,
70};