use miette::Diagnostic;
use thiserror::Error;
pub type TagResult<T> = std::result::Result<T, TagError>;
#[derive(Debug, Error, Diagnostic)]
pub enum TagError {
#[error("The provided announcement tag ({tag}) claims we're releasing {package_name} {tag_version}, but that package is version {real_version}")]
ContradictoryTagVersion {
tag: String,
package_name: String,
tag_version: semver::Version,
real_version: semver::Version,
},
#[error("Couldn't parse the version from the provided announcement tag ({tag})")]
TagVersionParse {
tag: String,
#[source]
details: semver::Error,
},
#[error("The provided announcement tag ({tag}) didn't match any Package or Version")]
NoTagMatch {
tag: String,
},
}