use std::fmt;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RefusalReason {
EngineKilled,
EngineTimeout,
OutputBounded,
MalformedEncoding,
MissingCompletionRecord,
IncoherentInventory,
OccurrenceCapabilityMismatch,
OccurrenceCompilationUnknown,
OccurrenceCompilationUnsupported,
ProducerMismatch,
EngineRevisionMismatch,
ContractVersionMismatch,
ProfileMismatch,
DependencyFingerprintMismatch,
ContextEnvelopeVersionUnrecognised,
ContextFingerprintMismatch,
SourceSnapshotMismatch,
}
impl RefusalReason {
pub const fn token(self) -> &'static str {
match self {
RefusalReason::EngineKilled => "engine-killed",
RefusalReason::EngineTimeout => "engine-timeout",
RefusalReason::OutputBounded => "output-bounded",
RefusalReason::MalformedEncoding => "malformed-encoding",
RefusalReason::MissingCompletionRecord => "missing-completion-record",
RefusalReason::IncoherentInventory => "incoherent-inventory",
RefusalReason::ProducerMismatch => "producer-mismatch",
RefusalReason::EngineRevisionMismatch => "engine-revision-mismatch",
RefusalReason::ContractVersionMismatch => "contract-version-mismatch",
RefusalReason::ProfileMismatch => "profile-mismatch",
RefusalReason::DependencyFingerprintMismatch => "dependency-fingerprint-mismatch",
RefusalReason::ContextEnvelopeVersionUnrecognised => {
"context-envelope-version-unrecognised"
}
RefusalReason::ContextFingerprintMismatch => "context-fingerprint-mismatch",
RefusalReason::SourceSnapshotMismatch => "source-snapshot-mismatch",
RefusalReason::OccurrenceCapabilityMismatch => "occurrence-capability-mismatch",
RefusalReason::OccurrenceCompilationUnknown => "occurrence-compilation-unknown",
RefusalReason::OccurrenceCompilationUnsupported => "occurrence-compilation-unsupported",
}
}
}
impl fmt::Display for RefusalReason {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str(self.token())
}
}