Codex Handbook
git-utils/src/errors.rs 35 lines
use std::path::PathBuf;use std::process::ExitStatus;use std::string::FromUtf8Error;use thiserror::Error;use walkdir::Error as WalkdirError;/// Errors returned while managing git worktree snapshots.#[derive(Debug, Error)]pub enum GitToolingError {    #[error("git command `{command}` failed with status {status}: {stderr}")]    GitCommand {        command: String,        status: ExitStatus,        stderr: String,    },    #[error("git command `{command}` produced non-UTF-8 output")]    GitOutputUtf8 {        command: String,        #[source]        source: FromUtf8Error,    },    #[error("{path:?} is not a git repository")]    NotAGitRepository { path: PathBuf },    #[error("path {path:?} must be relative to the repository root")]    NonRelativePath { path: PathBuf },    #[error("path {path:?} escapes the repository root")]    PathEscapesRepository { path: PathBuf },    #[error("failed to process path inside worktree")]    PathPrefix(#[from] std::path::StripPrefixError),    #[error(transparent)]    Walkdir(#[from] WalkdirError),    #[error(transparent)]    Io(#[from] std::io::Error),}