crate::packets::macros::reason_code!(
DisconnectReasonCode,
NormalDisconnection,
DisconnectWithWillMessage,
UnspecifiedError,
MalformedPacket,
ProtocolError,
ImplementationSpecificError,
NotAuthorized,
ServerBusy,
ServerShuttingDown,
KeepAliveTimeout,
SessionTakenOver,
TopicFilterInvalid,
TopicNameInvalid,
ReceiveMaximumExceeded,
TopicAliasInvalid,
PacketTooLarge,
MessageRateTooHigh,
QuotaExceeded,
AdministrativeAction,
PayloadFormatInvalid,
RetainNotSupported,
QosNotSupported,
UseAnotherServer,
ServerMoved,
SharedSubscriptionsNotSupported,
ConnectionRateExceeded,
MaximumConnectTime,
SubscriptionIdentifiersNotSupported,
WildcardSubscriptionsNotSupported
);