yaz-rs 0.1.0

Rust crate for Z39.50 using YAZ toolkit
//! Error types for yaz-rs

use std::fmt;

/// Result type for yaz-rs operations
pub type Result<T> = std::result::Result<T, Error>;

/// Error type for yaz-rs
#[derive(Debug, Clone)]
pub enum Error {
    /// Connection error
    ConnectionError(String),
    /// Search error
    SearchError(String),
    /// Protocol error
    ProtocolError(String),
    /// Other error
    Other(String),
}

impl fmt::Display for Error {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            Error::ConnectionError(msg) => write!(f, "Connection error: {}", msg),
            Error::SearchError(msg) => write!(f, "Search error: {}", msg),
            Error::ProtocolError(msg) => write!(f, "Protocol error: {}", msg),
            Error::Other(msg) => write!(f, "Error: {}", msg),
        }
    }
}

impl std::error::Error for Error {}