pub enum BencodeParserError {
InvalidVariantMethod(String),
InvalidUTF8String(FromUtf8Error),
InvalidASCIIInteger(ParseIntError),
MissingSentinel,
InvalidASCIIBytes,
InvalidIntegerString,
ByteStringLengthOverflow,
BadDictionaryKey,
NotAValidBencodeByte,
BadFirstByte,
}
Expand description
Possible error values when parsing a bencode struct into a value, or utf8 bytes into a bencode struct.
Variants§
InvalidVariantMethod(String)
When you call an enum destructuring method on the wrong variant. Contains a message with invalid type and which method it was passed to.
eg: calling as_int()
on Bencode::List
, or as_list()
on Bencode::Dict
, etc.
InvalidUTF8String(FromUtf8Error)
An invalid UTF8 byte sequence was found when calling as_usize()
or as_string()
.
eg: some byte outside of the standard ASCII range.
InvalidASCIIInteger(ParseIntError)
An invalid ASCII byte was found when calling as_usize()
.
See: ParseIntError
on usize::from_str_radix()
MissingSentinel
Indicates an expected ‘e’ was missing. All bencode types except ByteStr expect an ‘e’ byte after data to indicate the end of the object.
InvalidASCIIBytes
Indicates that the bytes passed to a parse function are not valid ASCII.
InvalidIntegerString
Indicates that bytes passed to a parse function were valid ascii, but could not be parsed to an integer. (in cases like bytestr length, or an integer value.)
ByteStringLengthOverflow
Indicates that the length specified by a bytestring is longer than the remaining number of bytes passed into the parse function.
BadDictionaryKey
Indicates that while parsing a dictionary object, a non bytestring key was found.
NotAValidBencodeByte
when a character is encountered by the parse_child function, that is not applicable to any of the bencode types.
BadFirstByte
Indicates that the first byte of the array passed to a parsing function was not valid.
eg: as_int where first byte is not ‘i’, as_bstr where the first byte is not [0-9], etc.