[−][src]Struct solana_libra_bytecode_verifier::verifier::VerifiedModule
A module that has been verified for internal consistency.
This does not include cross-module checking -- that needs to be done separately.
Methods
impl VerifiedModule
[src]
pub fn new(
module: CompiledModule
) -> Result<Self, (CompiledModule, Vec<VMStatus>)>
[src]
module: CompiledModule
) -> Result<Self, (CompiledModule, Vec<VMStatus>)>
Verifies this CompiledModule
, returning a VerifiedModule
on success.
On failure, returns the original CompiledModule
and a list of verification errors.
There is a partial order on the checks. For example, the duplication check must precede the structural recursion check. In general, later checks are more expensive.
pub fn serialize(&self, buf: &mut Vec<u8>) -> Result<(), Error>
[src]
Serializes this module into the provided buffer.
This is merely a convenience wrapper around module.as_inner().serialize(buf)
.
VerifiedModule
instances cannot be deserialized directly, since the input is potentially
untrusted. Instead, one must go through CompiledModule
.
pub fn deserialize(binary: &[u8]) -> BinaryLoaderResult<Self>
[src]
Deserializes a &u8 slice into a VerifiedModule
instance.
pub fn as_inner(&self) -> &CompiledModule
[src]
Returns a reference to the CompiledModule
within.
pub fn into_inner(self) -> CompiledModule
[src]
Returns the CompiledModule
within. Conversion back to VerifiedModule
will require
going through the verifier again.
Trait Implementations
impl Clone for VerifiedModule
[src]
fn clone(&self) -> VerifiedModule
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for VerifiedModule
[src]
impl Display for VerifiedModule
[src]
impl Eq for VerifiedModule
[src]
impl ModuleAccess for VerifiedModule
[src]
fn as_module(&self) -> &CompiledModule
[src]
fn self_handle(&self) -> &ModuleHandle
[src]
fn name(&self) -> &IdentStr
[src]
fn address(&self) -> &AccountAddress
[src]
fn module_handle_at(&self, idx: ModuleHandleIndex) -> &ModuleHandle
[src]
fn struct_handle_at(&self, idx: StructHandleIndex) -> &StructHandle
[src]
fn function_handle_at(&self, idx: FunctionHandleIndex) -> &FunctionHandle
[src]
fn type_signature_at(&self, idx: TypeSignatureIndex) -> &TypeSignature
[src]
fn function_signature_at(
&self,
idx: FunctionSignatureIndex
) -> &FunctionSignature
[src]
&self,
idx: FunctionSignatureIndex
) -> &FunctionSignature
fn locals_signature_at(&self, idx: LocalsSignatureIndex) -> &LocalsSignature
[src]
fn identifier_at(&self, idx: IdentifierIndex) -> &IdentStr
[src]
fn user_string_at(&self, idx: UserStringIndex) -> &VMStr
[src]
fn byte_array_at(&self, idx: ByteArrayPoolIndex) -> &ByteArray
[src]
fn address_at(&self, idx: AddressPoolIndex) -> &AccountAddress
[src]
fn struct_def_at(&self, idx: StructDefinitionIndex) -> &StructDefinition
[src]
fn field_def_at(&self, idx: FieldDefinitionIndex) -> &FieldDefinition
[src]
fn function_def_at(&self, idx: FunctionDefinitionIndex) -> &FunctionDefinition
[src]
fn get_field_signature(
&self,
field_definition_index: FieldDefinitionIndex
) -> &TypeSignature
[src]
&self,
field_definition_index: FieldDefinitionIndex
) -> &TypeSignature
fn module_handles(&self) -> &[ModuleHandle]
[src]
fn struct_handles(&self) -> &[StructHandle]
[src]
fn function_handles(&self) -> &[FunctionHandle]
[src]
fn type_signatures(&self) -> &[TypeSignature]
[src]
fn function_signatures(&self) -> &[FunctionSignature]
[src]
fn locals_signatures(&self) -> &[LocalsSignature]
[src]
fn byte_array_pool(&self) -> &[ByteArray]
[src]
fn address_pool(&self) -> &[AccountAddress]
[src]
fn identifiers(&self) -> &[Identifier]
[src]
fn user_strings(&self) -> &[VMString]
[src]
fn struct_defs(&self) -> &[StructDefinition]
[src]
fn field_defs(&self) -> &[FieldDefinition]
[src]
fn function_defs(&self) -> &[FunctionDefinition]
[src]
fn module_id_for_handle(&self, module_handle_idx: &ModuleHandle) -> ModuleId
[src]
fn self_id(&self) -> ModuleId
[src]
fn field_def_range(
&self,
field_count: u16,
first_field: FieldDefinitionIndex
) -> &[FieldDefinition]
[src]
&self,
field_count: u16,
first_field: FieldDefinitionIndex
) -> &[FieldDefinition]
fn is_field_in_struct(
&self,
field_definition_index: FieldDefinitionIndex,
struct_handle_index: StructHandleIndex
) -> bool
[src]
&self,
field_definition_index: FieldDefinitionIndex,
struct_handle_index: StructHandleIndex
) -> bool
impl PartialEq<VerifiedModule> for VerifiedModule
[src]
fn eq(&self, other: &VerifiedModule) -> bool
[src]
fn ne(&self, other: &VerifiedModule) -> bool
[src]
impl StructuralEq for VerifiedModule
[src]
impl StructuralPartialEq for VerifiedModule
[src]
Auto Trait Implementations
impl RefUnwindSafe for VerifiedModule
impl Send for VerifiedModule
impl Sync for VerifiedModule
impl Unpin for VerifiedModule
impl UnwindSafe for VerifiedModule
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
fn equivalent(&self, key: &K) -> bool
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> SendSyncUnwindSafe for T where
T: Send + Sync + UnwindSafe + ?Sized,
T: Send + Sync + UnwindSafe + ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,