brewdiff 0.2.1

Homebrew diff functionality for nix-darwin configurations
Documentation
use std::fmt;
use std::io;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum Error {
    #[error("Homebrew not installed")]
    HomebrewNotFound,

    #[error("Activation script not found at {0}")]
    NoActivationScript(String),

    #[error("Brewfile not found in activation script")]
    BrewfileNotFound,

    #[error("Failed to parse Brewfile: {0}")]
    ParseError(String),

    #[error("Format error")]
    Fmt(#[from] fmt::Error),

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

    #[error("Regex error: {0}")]
    Regex(#[from] regex::Error),

    #[error("UTF-8 conversion error: {0}")]
    Utf8(#[from] std::string::FromUtf8Error),

    #[error("Command execution failed: {0}")]
    CommandFailed(String),
}

pub type Result<T> = std::result::Result<T, Error>;