pub enum EofValidationError {
Show 34 variants
FalsePositive,
UnknownOpcode,
OpcodeDisabled,
InstructionNotForwardAccessed,
MissingImmediateBytes,
MissingRJUMPVImmediateBytes,
JumpToImmediateBytes,
BackwardJumpToImmediateBytes,
RJUMPVZeroMaxIndex,
JumpZeroOffset,
EOFCREATEInvalidIndex,
CodeSectionOutOfBounds,
CALLFNonReturningFunction,
StackOverflow,
JUMPFEnoughOutputs,
JUMPFStackHigherThanOutputs,
DataLoadOutOfBounds,
RETFBiggestStackNumMoreThenOutputs,
StackUnderflow,
TypesStackUnderflow,
JumpUnderflow,
JumpOverflow,
BackwardJumpBiggestNumMismatch,
BackwardJumpSmallestNumMismatch,
LastInstructionNotTerminating,
CodeSectionNotAccessed,
InvalidTypesSection,
InvalidFirstTypesSection,
MaxStackMismatch,
NoCodeSections,
SubContainerCalledInTwoModes,
SubContainerNotAccessed,
DataNotFilled,
NonReturningSectionIsReturning,
}
Variants§
FalsePositive
UnknownOpcode
Opcode is not known. It is not defined in the opcode table.
OpcodeDisabled
Opcode is disabled in EOF. For example JUMP, JUMPI, etc.
InstructionNotForwardAccessed
Every instruction inside bytecode should be forward accessed. Forward access can be a jump or sequential opcode. In case after terminal opcode there should be a forward jump.
MissingImmediateBytes
Bytecode is too small and is missing immediate bytes for instruction.
MissingRJUMPVImmediateBytes
Similar to EofValidationError::MissingImmediateBytes
but for special case of RJUMPV immediate bytes.
JumpToImmediateBytes
Invalid jump into immediate bytes.
BackwardJumpToImmediateBytes
Invalid jump into immediate bytes.
RJUMPVZeroMaxIndex
MaxIndex in RJUMPV can’t be zero. Zero max index makes it RJUMPI.
JumpZeroOffset
Jump with zero offset would make a jump to next opcode, it does not make sense.
EOFCREATEInvalidIndex
EOFCREATE points to container out of bounds.
CodeSectionOutOfBounds
CALLF section out of bounds.
CALLFNonReturningFunction
CALLF to non returning function is not allowed.
StackOverflow
CALLF stack overflow.
JUMPFEnoughOutputs
JUMPF needs to have enough outputs.
JUMPFStackHigherThanOutputs
JUMPF Stack
DataLoadOutOfBounds
DATA load out of bounds.
RETFBiggestStackNumMoreThenOutputs
RETF biggest stack num more then outputs.
StackUnderflow
Stack requirement is more than smallest stack items.
TypesStackUnderflow
Smallest stack items is more than types output.
JumpUnderflow
Jump out of bounds.
JumpOverflow
Jump to out of bounds.
BackwardJumpBiggestNumMismatch
Backward jump should have same smallest and biggest stack items.
BackwardJumpSmallestNumMismatch
Backward jump should have same smallest and biggest stack items.
LastInstructionNotTerminating
Last instruction should be terminating.
CodeSectionNotAccessed
Code section not accessed.
InvalidTypesSection
Types section invalid
InvalidFirstTypesSection
First types section is invalid. It should have inputs 0 and outputs 0x80.
MaxStackMismatch
Max stack element mismatch.
NoCodeSections
No code sections present
SubContainerCalledInTwoModes
Sub container called in two different modes.
Check CodeType
for more information.
SubContainerNotAccessed
Sub container not accessed.
DataNotFilled
Data size needs to be filled for ReturnContract type.
NonReturningSectionIsReturning
Section is marked as non-returning but has either RETF or JUMPF to returning section opcodes.
Trait Implementations§
Source§impl Clone for EofValidationError
impl Clone for EofValidationError
Source§fn clone(&self) -> EofValidationError
fn clone(&self) -> EofValidationError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for EofValidationError
impl Debug for EofValidationError
Source§impl Display for EofValidationError
impl Display for EofValidationError
Source§impl Error for EofValidationError
impl Error for EofValidationError
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
Source§impl From<EofValidationError> for EofError
impl From<EofValidationError> for EofError
Source§fn from(err: EofValidationError) -> Self
fn from(err: EofValidationError) -> Self
Source§impl Hash for EofValidationError
impl Hash for EofValidationError
Source§impl Ord for EofValidationError
impl Ord for EofValidationError
Source§fn cmp(&self, other: &EofValidationError) -> Ordering
fn cmp(&self, other: &EofValidationError) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for EofValidationError
impl PartialEq for EofValidationError
Source§impl PartialOrd for EofValidationError
impl PartialOrd for EofValidationError
impl Copy for EofValidationError
impl Eq for EofValidationError
impl StructuralPartialEq for EofValidationError
Auto Trait Implementations§
impl Freeze for EofValidationError
impl RefUnwindSafe for EofValidationError
impl Send for EofValidationError
impl Sync for EofValidationError
impl Unpin for EofValidationError
impl UnwindSafe for EofValidationError
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> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.