use std::path::PathBuf;
#[non_exhaustive]
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("no controlling terminal; cannot launch editor")]
NoControllingTty,
#[error("editor not found: {0}")]
EditorNotFound(String),
#[error("editor exited with code {0}")]
EditorNonZeroExit(i32),
#[error("invalid editor command: {0}")]
InvalidEditorCommand(String),
#[error("tempfile no longer exists after editor exited: {0}")]
TempFileDeleted(PathBuf),
#[error("invalid builder configuration: {0}")]
InvalidBuilderConfiguration(&'static str),
#[error("compatibility violation: {0}")]
CompatibilityViolation(&'static str),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
}