pub struct SectionLimited<'a, T> { /* private fields */ }
Expand description
A generic structure for reading a section of a WebAssembly binary which has a limited number of items within it.
Many WebAssembly sections are a count of items followed by that many items. This helper structure can be used to parse these sections and provides an iteration-based API for reading the contents.
Note that this always implements the Clone
trait to represent the
ability to parse the section multiple times.
Implementations§
source§impl<'a> SectionLimited<'a, RecGroup>
impl<'a> SectionLimited<'a, RecGroup>
sourcepub fn into_iter_err_on_gc_types(
self,
) -> impl Iterator<Item = Result<FuncType, BinaryReaderError>> + 'a
pub fn into_iter_err_on_gc_types( self, ) -> impl Iterator<Item = Result<FuncType, BinaryReaderError>> + 'a
Returns an iterator over this type section which will only yield function types and any usage of GC types from the GC proposal will be translated into an error.
source§impl<'a, T> SectionLimited<'a, T>
impl<'a, T> SectionLimited<'a, T>
sourcepub fn new(
reader: BinaryReader<'a>,
) -> Result<SectionLimited<'a, T>, BinaryReaderError>
pub fn new( reader: BinaryReader<'a>, ) -> Result<SectionLimited<'a, T>, BinaryReaderError>
Creates a new section reader from the provided contents.
The data
provided here is the data of the section itself that will be
parsed. The offset
argument is the byte offset, in the original wasm
binary, that the section was found. The offset
argument is used
for error reporting.
§Errors
Returns an error if a 32-bit count couldn’t be read from the data
.
sourcepub fn original_position(&self) -> usize
pub fn original_position(&self) -> usize
Returns whether the original byte offset of this section.
sourcepub fn range(&self) -> Range<usize>
pub fn range(&self) -> Range<usize>
Returns the range, as byte offsets, of this section within the original wasm binary.
sourcepub fn into_iter_with_offsets(self) -> SectionLimitedIntoIterWithOffsets<'a, T> ⓘwhere
T: FromReader<'a>,
pub fn into_iter_with_offsets(self) -> SectionLimitedIntoIterWithOffsets<'a, T> ⓘwhere
T: FromReader<'a>,
Returns an iterator which yields not only each item in this section but additionally the offset of each item within the section.
Trait Implementations§
source§impl<T> Clone for SectionLimited<'_, T>
impl<T> Clone for SectionLimited<'_, T>
source§fn clone(&self) -> SectionLimited<'_, T>
fn clone(&self) -> SectionLimited<'_, T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<T> Debug for SectionLimited<'_, T>
impl<T> Debug for SectionLimited<'_, T>
source§impl<'a, T> IntoIterator for SectionLimited<'a, T>where
T: FromReader<'a>,
impl<'a, T> IntoIterator for SectionLimited<'a, T>where
T: FromReader<'a>,
source§type Item = Result<T, BinaryReaderError>
type Item = Result<T, BinaryReaderError>
source§type IntoIter = SectionLimitedIntoIter<'a, T>
type IntoIter = SectionLimitedIntoIter<'a, T>
source§fn into_iter(self) -> <SectionLimited<'a, T> as IntoIterator>::IntoIter
fn into_iter(self) -> <SectionLimited<'a, T> as IntoIterator>::IntoIter
Auto Trait Implementations§
impl<'a, T> Freeze for SectionLimited<'a, T>
impl<'a, T> RefUnwindSafe for SectionLimited<'a, T>where
T: RefUnwindSafe,
impl<'a, T> Send for SectionLimited<'a, T>where
T: Send,
impl<'a, T> Sync for SectionLimited<'a, T>where
T: Sync,
impl<'a, T> Unpin for SectionLimited<'a, T>where
T: Unpin,
impl<'a, T> UnwindSafe for SectionLimited<'a, T>where
T: UnwindSafe,
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
)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