Enum OracleError
pub enum OracleError {
MemoryAccess(Addr),
InstructionFetchMemoryAccess(Addr),
InvalidInstruction,
GeneralFault,
Unreliable,
ComputationError,
Timeout,
MultipleInstructionsExecuted,
ApiError(String),
}
Expand description
Error returned when an error occurs in an Oracle
during instruction observation.
Variants§
MemoryAccess(Addr)
Represents any page fault. Might be an instruction fetch or data fetch.
InstructionFetchMemoryAccess(Addr)
A memory access that occurred while trying to fetch the next instruction.
This is an optimization that is returned if possible by the oracle.
The oracle may fall back to returning a MemoryAccess
error instead,
if it is not possible to distinguish between instruction fetches and
normal data fetches.
InvalidInstruction
The undefined instruction fault was raised.
GeneralFault
A general fault was raised.
Unreliable
The intruction execution produces different results when executed multiple times.
ComputationError
A computation error fault or exception was raised. For example: dividing by zero.
Timeout
Observation timeout occurred.
MultipleInstructionsExecuted
Instruction execution did not halt after executing a single instruction. This makes it impossible to observe the instruction execution.
ApiError(String)
An API error occurred.
Implementations§
Trait Implementations§
§impl Clone for OracleError
impl Clone for OracleError
§fn clone(&self) -> OracleError
fn clone(&self) -> OracleError
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for OracleError
impl Debug for OracleError
§impl<'de> Deserialize<'de> for OracleError
impl<'de> Deserialize<'de> for OracleError
§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
§impl Display for OracleError
impl Display for OracleError
§impl Error for OracleError
impl Error for OracleError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
§impl JsonSchema for OracleError
impl JsonSchema for OracleError
§fn schema_name() -> String
fn schema_name() -> String
§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read more§impl Serialize for OracleError
impl Serialize for OracleError
Auto Trait Implementations§
impl Freeze for OracleError
impl RefUnwindSafe for OracleError
impl Send for OracleError
impl Sync for OracleError
impl Unpin for OracleError
impl UnwindSafe for OracleError
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more