1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9pub enum RvmError {
10 PartitionNotFound,
13 InvalidPartitionState,
15 PartitionLimitExceeded,
17 SplitPreconditionFailed,
19 MergePreconditionFailed,
21 MigrationTimeout,
23
24 VcpuNotFound,
27 VcpuLimitReached,
29
30 InsufficientCapability,
33 StaleCapability,
35 CapabilityTypeMismatch,
37 DelegationDepthExceeded,
39 CapabilityConsumed,
41
42 WitnessVerificationFailed,
45 WitnessChainBroken,
47 WitnessLogFull,
49
50 ProofInvalid,
53 ProofTierInsufficient,
55 ProofBudgetExceeded,
57
58 CoherenceBelowThreshold,
61 MinCutBudgetExceeded,
63
64 MemoryOverlap,
67 AlignmentError,
69 InvalidTierTransition,
71 OutOfMemory,
73
74 DeviceLeaseNotFound,
77 DeviceLeaseExpired,
79 DeviceLeaseConflict,
81
82 CheckpointNotFound,
85 CheckpointCorrupted,
87 FailureEscalated,
89
90 ResourceLimitExceeded,
93 Unsupported,
95 InternalError,
97}
98
99impl core::fmt::Display for RvmError {
100 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
101 match self {
102 Self::PartitionNotFound => write!(f, "partition not found"),
103 Self::InvalidPartitionState => write!(f, "invalid partition state for operation"),
104 Self::PartitionLimitExceeded => write!(f, "maximum partition count reached"),
105 Self::SplitPreconditionFailed => write!(f, "split preconditions not met"),
106 Self::MergePreconditionFailed => write!(f, "merge preconditions not met"),
107 Self::MigrationTimeout => write!(f, "partition migration timed out"),
108 Self::VcpuNotFound => write!(f, "vCPU not found"),
109 Self::VcpuLimitReached => write!(f, "vCPU limit reached"),
110 Self::InsufficientCapability => write!(f, "insufficient capability rights"),
111 Self::StaleCapability => write!(f, "stale capability (epoch mismatch)"),
112 Self::CapabilityTypeMismatch => write!(f, "capability type mismatch"),
113 Self::DelegationDepthExceeded => write!(f, "delegation depth exceeded"),
114 Self::CapabilityConsumed => write!(f, "capability already consumed"),
115 Self::WitnessVerificationFailed => write!(f, "witness verification failed"),
116 Self::WitnessChainBroken => write!(f, "witness chain broken"),
117 Self::WitnessLogFull => write!(f, "witness log full"),
118 Self::ProofInvalid => write!(f, "proof invalid"),
119 Self::ProofTierInsufficient => write!(f, "proof tier insufficient"),
120 Self::ProofBudgetExceeded => write!(f, "proof budget exceeded"),
121 Self::CoherenceBelowThreshold => write!(f, "coherence below threshold"),
122 Self::MinCutBudgetExceeded => write!(f, "mincut budget exceeded"),
123 Self::MemoryOverlap => write!(f, "memory region overlap"),
124 Self::AlignmentError => write!(f, "address alignment error"),
125 Self::InvalidTierTransition => write!(f, "invalid memory tier transition"),
126 Self::OutOfMemory => write!(f, "out of memory"),
127 Self::DeviceLeaseNotFound => write!(f, "device lease not found"),
128 Self::DeviceLeaseExpired => write!(f, "device lease expired"),
129 Self::DeviceLeaseConflict => write!(f, "conflicting device lease"),
130 Self::CheckpointNotFound => write!(f, "checkpoint not found"),
131 Self::CheckpointCorrupted => write!(f, "checkpoint corrupted"),
132 Self::FailureEscalated => write!(f, "failure escalated beyond recovery"),
133 Self::ResourceLimitExceeded => write!(f, "resource limit exceeded"),
134 Self::Unsupported => write!(f, "operation unsupported"),
135 Self::InternalError => write!(f, "internal error"),
136 }
137 }
138}
139
140pub type RvmResult<T> = core::result::Result<T, RvmError>;