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