Trait frame_support::dispatch::Input
source · pub trait Input {
// Required methods
fn remaining_len(&mut self) -> Result<Option<usize>, Error>;
fn read(&mut self, into: &mut [u8]) -> Result<(), Error>;
// Provided methods
fn read_byte(&mut self) -> Result<u8, Error> { ... }
fn descend_ref(&mut self) -> Result<(), Error> { ... }
fn ascend_ref(&mut self) { ... }
}
Expand description
Trait that allows reading of data into a slice.
Required Methods§
sourcefn remaining_len(&mut self) -> Result<Option<usize>, Error>
fn remaining_len(&mut self) -> Result<Option<usize>, Error>
Should return the remaining length of the input data. If no information about the input
length is available, None
should be returned.
The length is used to constrain the preallocation while decoding. Returning a garbage
length can open the doors for a denial of service attack to your application.
Otherwise, returning None
can decrease the performance of your application.
Provided Methods§
sourcefn descend_ref(&mut self) -> Result<(), Error>
fn descend_ref(&mut self) -> Result<(), Error>
Descend into nested reference when decoding.
This is called when decoding a new refence-based instance,
such as Vec
or Box
. Currently all such types are
allocated on the heap.
sourcefn ascend_ref(&mut self)
fn ascend_ref(&mut self)
Ascend to previous structure level when decoding. This is called when decoding reference-based type is finished.