Function rmp::decode::read_i16_loosely [] [src]

pub fn read_i16_loosely<R>(rd: &mut R) -> Result<i16, ValueReadError> where R: Read

Attempts to read up to 3 bytes from the given reader and to decode them as i16 value.

Unlike the read_i16, this function weakens type restrictions, allowing you to safely decode packed values even if you aren't sure about the actual type.

Note, that trying to decode unsigned integers will result in TypeMismatch error even if the value fits in i16.

Errors

This function will return ValueReadError on any I/O error while reading either the marker or the data, except the EINTR, which is handled internally.

It also returns ValueReadError::TypeMismatch if the actual type is not equal with the expected one, indicating you with the actual type.

Note

This function will silently retry on every EINTR received from the underlying Read until successful read.