Trait that allows reading of data into a slice.
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.
None can decrease the performance of your application.
Read the exact number of bytes required to fill the given buffer.
Note that this function is similar to
std::io::Read::read_exact and not
Read a single byte from the input.
Descend into nested reference when decoding.
This is called when decoding a new refence-based instance,
Box. Currently all such types are
allocated on the heap.
Ascend to previous structure level when decoding. This is called when decoding reference-based type is finished.