Function bao::decode::parse_and_check_content_len [−][src]
pub fn parse_and_check_content_len(encoded: &[u8]) -> Result<usize, Error>
Parse the length of an encoded slice and convert it to a usize
. This is useful if you need to
allocate space for decoding.
If the encoded slice isn't long enough to represent the reported length -- which includes the
case where the length can't fit in a usize
-- this returns Error::Truncated
.
Example
let input = b"foobar"; let (_, encoded) = bao::encode::encode_to_vec(input); let content_len = bao::decode::parse_and_check_content_len(&encoded).unwrap(); assert_eq!(input.len(), content_len); let err = bao::decode::parse_and_check_content_len(&encoded[..encoded.len()/2]).unwrap_err(); assert_eq!(bao::decode::Error::Truncated, err);