#[derive(Debug, thiserror::Error)] pub enum BumperError { #[error("Failed to run git: {0}")] GitInvoke(#[source] std::io::Error), #[error("Command 'git tag' failed: {0}")] GitTag(String), } impl BumperError { pub fn git_tag(stderr: &[u8]) -> Self { let stderr = String::from_utf8_lossy(stderr).into_owned(); Self::GitTag(stderr) } }