diffo 0.2.0

Semantic diffing for Rust structs via serde
Documentation
use thiserror::Error;

/// Error type for diff operations.
#[derive(Debug, Error)]
pub enum Error {
    /// Serialization error when converting to serde_value::Value
    #[error("Serialization error: {0}")]
    Serialization(#[from] serde_value::SerializerError),

    /// Deserialization error when converting from serde_value::Value
    #[error("Deserialization error: {0}")]
    Deserialization(#[from] serde_value::DeserializerError),

    /// Invalid path format
    #[error("Invalid path: {0}")]
    InvalidPath(String),

    /// Configuration error
    #[error("Configuration error: {0}")]
    Config(String),
}

/// Error type for formatting operations.
#[derive(Debug, Error)]
pub enum FormatError {
    /// JSON formatting error
    #[error("JSON formatting error: {0}")]
    Json(#[from] serde_json::Error),

    /// IO error
    #[error("IO error: {0}")]
    Io(#[from] std::io::Error),
}