From 21bc7805f7a2cf4b2109bd5c743b371c361c2cd7 Mon Sep 17 00:00:00 2001 From: Nils Andreas Svee Date: Mon, 11 May 2026 12:33:40 +0700 Subject: [PATCH] refactor: mark public enums as non-exhaustive to improve API stability Apply the #[non-exhaustive] attribute to ClientError and WarningKind to prevent breaking changes when adding new variants. Handle the catch-all case in the CLI formatter. --- crates/irtt-cli/src/lib.rs | 1 + crates/irtt-client/src/error.rs | 1 + crates/irtt-client/src/event.rs | 1 + 3 files changed, 3 insertions(+) diff --git a/crates/irtt-cli/src/lib.rs b/crates/irtt-cli/src/lib.rs index b849bd9..6cd8e0c 100644 --- a/crates/irtt-cli/src/lib.rs +++ b/crates/irtt-cli/src/lib.rs @@ -831,6 +831,7 @@ fn warning_kind(kind: WarningKind) -> &'static str { WarningKind::MalformedOrUnrelatedPacket => "malformed_or_unrelated_packet", WarningKind::WrongToken => "wrong_token", WarningKind::UntrackedReply => "untracked_reply", + _ => "unknown", } } diff --git a/crates/irtt-client/src/error.rs b/crates/irtt-client/src/error.rs index 584b153..d6fbe1a 100644 --- a/crates/irtt-client/src/error.rs +++ b/crates/irtt-client/src/error.rs @@ -3,6 +3,7 @@ use std::{io, time::Duration}; use thiserror::Error; #[derive(Debug, Error)] +#[non_exhaustive] pub enum ClientError { #[error("failed to resolve server address {addr:?}")] Resolve { addr: String }, diff --git a/crates/irtt-client/src/event.rs b/crates/irtt-client/src/event.rs index 16ecaa6..4f705e4 100644 --- a/crates/irtt-client/src/event.rs +++ b/crates/irtt-client/src/event.rs @@ -101,6 +101,7 @@ pub enum ClientEvent { } #[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[non_exhaustive] pub enum WarningKind { MalformedOrUnrelatedPacket, WrongToken,