[−][src]Struct solana_libra_vm::file_format::StructHandle
A StructHandle
is a reference to a user defined type. It is composed by a ModuleHandle
and the name of the type within that module.
A type in a module is uniquely identified by its name and as such the name is enough to perform resolution.
The StructHandle
is polymorphic: it can have type parameters in its fields and carries the
kind constraints for these type parameters (empty list for non-generic structs). It also
carries the kind (resource/copyable) of the struct itself so that the verifier can check
resource semantic without having to load the referenced type.
At link time kind checking is performed and an error is reported if there is a mismatch with the definition.
Fields
module: ModuleHandleIndex
The module that defines the type.
name: IdentifierIndex
The name of the type.
is_nominal_resource: bool
There are two ways for a type to have the Kind resource
- If it has a type argument of resource
- If it was declared as a resource These "declared" resources are referred to as nominal resources
If is_nominal_resource
is true, it is a nominal resource
type_formals: Vec<Kind>
The type formals (identified by their index into the vec) and their kind constraints
Trait Implementations
impl<'_> BoundsCheck<&'_ CompiledModuleMut> for StructHandle
[src]
fn check_bounds(&self, module: &CompiledModuleMut) -> Vec<VMStatus>
[src]
impl Clone for StructHandle
[src]
fn clone(&self) -> StructHandle
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for StructHandle
[src]
impl Eq for StructHandle
[src]
impl Hash for StructHandle
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl Ord for StructHandle
[src]
fn cmp(&self, other: &StructHandle) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl PartialEq<StructHandle> for StructHandle
[src]
fn eq(&self, other: &StructHandle) -> bool
[src]
fn ne(&self, other: &StructHandle) -> bool
[src]
impl PartialOrd<StructHandle> for StructHandle
[src]
fn partial_cmp(&self, other: &StructHandle) -> Option<Ordering>
[src]
fn lt(&self, other: &StructHandle) -> bool
[src]
fn le(&self, other: &StructHandle) -> bool
[src]
fn gt(&self, other: &StructHandle) -> bool
[src]
fn ge(&self, other: &StructHandle) -> bool
[src]
impl StructuralEq for StructHandle
[src]
impl StructuralPartialEq for StructHandle
[src]
Auto Trait Implementations
impl RefUnwindSafe for StructHandle
impl Send for StructHandle
impl Sync for StructHandle
impl Unpin for StructHandle
impl UnwindSafe for StructHandle
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<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, 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>,