BencodeParserError

Enum BencodeParserError 

Source
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.

Trait Implementations§

Source§

impl Debug for BencodeParserError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.