sonos-sdk 0.1.0

Sync-first, DOM-like SDK for controlling Sonos speakers via UPnP
Documentation
use thiserror::Error;

#[derive(Error, Debug)]
pub enum SdkError {
    #[error("State management error: {0}")]
    StateError(#[from] sonos_state::StateError),

    #[error("API error: {0}")]
    ApiError(#[from] sonos_api::ApiError),

    #[error("Event manager error: {0}")]
    EventManager(String),

    #[error("Speaker not found: {0}")]
    SpeakerNotFound(String),

    #[error("Invalid IP address")]
    InvalidIpAddress,

    #[error("Property watcher closed")]
    WatcherClosed,

    #[error("Property fetch failed: {0}")]
    FetchFailed(String),

    #[error("Validation failed: {0}")]
    ValidationFailed(#[from] sonos_api::operation::ValidationError),

    #[error("Invalid operation: {0}")]
    InvalidOperation(String),
}