Struct bencode_decoder::BNumber
[−]
[src]
pub struct BNumber {
// some fields omitted
}Struct for representing numbers in Bencode format.
Methods
impl BNumber[src]
Trait Implementations
impl PartialEq for BNumber[src]
Basic equivalence relation.
Checks for equality simply using BNumber's number field. Works exactly
like equivalence in i64.
fn eq(&self, other: &Self) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &Self) -> bool
This method tests for !=.
impl Eq for BNumber[src]
Guarantees to be reflexive.
impl Debug for BNumber[src]
Simple Debug implementation.
Works just like i64::fmt.
impl BElement<BNumber> for BNumber[src]
fn decode(encoded: &[u8]) -> Result<(usize, BNumber), &'static str>
Decodes BNumber from array of bytes.
Returnes Ok((position of last used byte in passed array, parsed BNumber))
or Err if couldn't parse BNumber correctly.
Examples
BNumber must begin with 'i' char and end with 'e' char.
use bencode::BElement; use bencode::BNumber; assert_eq!((4, BNumber::new(300)), BNumber::decode("i300e".as_bytes()).ok().expect("invalid")); assert_eq!((5, BNumber::new(-204)), BNumber::decode("i-204e".as_bytes()).ok().expect("invalid"));
If it's not, then error is generated.
use bencode::BElement; use bencode::BNumber; assert!(BNumber::decode("l300e".as_bytes()).is_err());
Also error is generated, when number isn't valid or is too big for i64.
use bencode::BElement; use bencode::BNumber; assert!(BNumber::decode("i400000000000000000000000000000000000000000000e".as_bytes()).is_err());