From 976dd706d7bce8ab91894c1cd0c394ae96079dda Mon Sep 17 00:00:00 2001 From: Michel de Graaf Date: Tue, 8 Sep 2026 00:15:57 +0200 Subject: [PATCH] refactor(lib): export the ConnectionType parse error and document what hosts can still match --- soulseek-rs-lib/README.md | 6 +++--- soulseek-rs-lib/src/actor/peer_actor.rs | 2 -- soulseek-rs-lib/src/lib.rs | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/soulseek-rs-lib/README.md b/soulseek-rs-lib/README.md index 0ff5624..33a7756 100644 --- a/soulseek-rs-lib/README.md +++ b/soulseek-rs-lib/README.md @@ -115,6 +115,6 @@ fn main() -> Result<(), Box> { } ``` -`ServerMessage` and `ClientOperation` are `#[non_exhaustive]`: every protocol -message the client learns to handle adds a variant, so match them with a -wildcard arm. +`ClientOperation` is `#[non_exhaustive]`: every protocol message the client +learns to handle adds a variant, so match it with a wildcard arm. `SharedFile` +is too, so build it with the `..` syntax rather than listing every field. diff --git a/soulseek-rs-lib/src/actor/peer_actor.rs b/soulseek-rs-lib/src/actor/peer_actor.rs index dba864a..bf63e3a 100644 --- a/soulseek-rs-lib/src/actor/peer_actor.rs +++ b/soulseek-rs-lib/src/actor/peer_actor.rs @@ -21,9 +21,7 @@ use std::sync::mpsc::{Receiver, Sender}; use std::sync::{Arc, RwLock}; use std::time::{Duration, Instant}; -/// Marked non-exhaustive: each peer message the client learns adds a variant. #[derive(Debug, Clone)] -#[non_exhaustive] pub enum PeerMessage { SendMessage(Message), FileSearchResult(SearchResult), diff --git a/soulseek-rs-lib/src/lib.rs b/soulseek-rs-lib/src/lib.rs index 20a0d66..f9474a5 100644 --- a/soulseek-rs-lib/src/lib.rs +++ b/soulseek-rs-lib/src/lib.rs @@ -34,7 +34,7 @@ pub use actor::server_actor::{PeerAddress, UserMessage}; pub use client::{Client, ClientSettings}; pub use error::{Result, SoulseekRs}; pub use message::peer::{SharedDirectory, SharedFileEntry}; -pub use peer::ConnectionType; +pub use peer::{ConnectionType, ParseConnectionTypeError}; pub use types::{ ClientVersion, DownloadStatus, File, RoomEvent, RoomInfo, Search, SearchResult, SessionLoss, Transfer, UploadInfo, UploadStatus, UserInfo,