#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Diagnostic {
pub kind: DiagnosticKind,
pub message: String,
}
impl Diagnostic {
pub(crate) fn new(kind: DiagnosticKind, message: impl Into<String>) -> Self {
Self {
kind,
message: message.into(),
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum DiagnosticKind {
VersionMismatch,
PhaseMismatch,
UnsupportedVersion,
UnknownPhase,
MissingItemId,
}