Struct wasmparser::types::TypesRef

source ·
pub struct TypesRef<'a> { /* private fields */ }
Expand description

Represents the types known to a crate::Validator during validation.

Retrieved via the crate::Validator::types method.

Implementations§

source§

impl<'a> TypesRef<'a>

source

pub fn get(&self, id: TypeId) -> Option<&'a Type>

Gets a type based on its type id.

Returns None if the type id is unknown.

source

pub fn core_type_at(&self, index: u32) -> TypeId

Gets a core WebAssembly type id from a type index.

Note that this is in contrast to TypesRef::component_type_at which gets a component type from its index.

Panics

This will panic if the index provided is out of bounds.

source

pub fn component_type_at(&self, index: u32) -> TypeId

Gets a type id from a type index.

Panics

Panics if index is not a valid function index or if this type information represents a core module.

source

pub fn core_type_count(&self) -> u32

Returns the number of core types defined so far.

source

pub fn component_type_count(&self) -> u32

Returns the number of component types defined so far.

source

pub fn table_at(&self, index: u32) -> TableType

Gets the type of a table at the given table index.

Panics

This will panic if the index provided is out of bounds.

source

pub fn table_count(&self) -> u32

Returns the number of tables defined so far.

source

pub fn memory_at(&self, index: u32) -> MemoryType

Gets the type of a memory at the given memory index.

Panics

This will panic if the index provided is out of bounds.

source

pub fn memory_count(&self) -> u32

Returns the number of memories defined so far.

source

pub fn global_at(&self, index: u32) -> GlobalType

Gets the type of a global at the given global index.

Panics

This will panic if the index provided is out of bounds.

source

pub fn global_count(&self) -> u32

Returns the number of globals defined so far.

source

pub fn tag_at(&self, index: u32) -> TypeId

Gets the type of a tag at the given tag index.

Panics

This will panic if the index provided is out of bounds.

source

pub fn tag_count(&self) -> u32

Returns the number of tags defined so far.

source

pub fn function_at(&self, index: u32) -> TypeId

Gets the type of a core function at the given function index.

Panics

This will panic if the index provided is out of bounds.

source

pub fn function_count(&self) -> u32

Gets the count of core functions defined so far.

Note that this includes imported functions, defined functions, and for components lowered/aliased functions.

source

pub fn element_at(&self, index: u32) -> RefType

Gets the type of an element segment at the given element segment index.

Panics

This will panic if the index provided is out of bounds.

source

pub fn element_count(&self) -> u32

Returns the number of elements defined so far.

source

pub fn component_function_at(&self, index: u32) -> TypeId

Gets the type of a component function at the given function index.

Panics

This will panic if the index provided is out of bounds or if this type information represents a core module.

source

pub fn component_function_count(&self) -> u32

Returns the number of component functions defined so far.

source

pub fn module_at(&self, index: u32) -> TypeId

Gets the type of a module at the given module index.

Panics

This will panic if the index provided is out of bounds or if this type information represents a core module.

source

pub fn module_count(&self) -> u32

Returns the number of core wasm modules defined so far.

source

pub fn instance_at(&self, index: u32) -> TypeId

Gets the type of a module instance at the given module instance index.

Panics

This will panic if the index provided is out of bounds or if this type information represents a core module.

source

pub fn instance_count(&self) -> u32

Returns the number of core wasm instances defined so far.

source

pub fn component_at(&self, index: u32) -> TypeId

Gets the type of a component at the given component index.

Panics

This will panic if the index provided is out of bounds or if this type information represents a core module.

source

pub fn component_count(&self) -> u32

Returns the number of components defined so far.

source

pub fn component_instance_at(&self, index: u32) -> TypeId

Gets the type of an component instance at the given component instance index.

Panics

This will panic if the index provided is out of bounds or if this type information represents a core module.

source

pub fn component_instance_count(&self) -> u32

Returns the number of component instances defined so far.

source

pub fn value_at(&self, index: u32) -> ComponentValType

Gets the type of a value at the given value index.

Panics

This will panic if the index provided is out of bounds or if this type information represents a core module.

source

pub fn entity_type_from_import(&self, import: &Import<'_>) -> Option<EntityType>

Gets the entity type for the given import.

source

pub fn entity_type_from_export(&self, export: &Export<'_>) -> Option<EntityType>

Gets the entity type from the given export.

source

pub fn component_entity_type_of_import( &self, name: &str ) -> Option<ComponentEntityType>

Gets the component entity type for the given component import.

source

pub fn component_entity_type_of_export( &self, name: &str ) -> Option<ComponentEntityType>

Gets the component entity type for the given component export.

Trait Implementations§

source§

impl<'a> Clone for TypesRef<'a>

source§

fn clone(&self) -> TypesRef<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Index<TypeId> for TypesRef<'_>

§

type Output = Type

The returned type after indexing.
source§

fn index(&self, id: TypeId) -> &Type

Performs the indexing (container[index]) operation. Read more
source§

impl<'a> Copy for TypesRef<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for TypesRef<'a>

§

impl<'a> Send for TypesRef<'a>

§

impl<'a> Sync for TypesRef<'a>

§

impl<'a> Unpin for TypesRef<'a>

§

impl<'a> UnwindSafe for TypesRef<'a>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.