Struct bencode_decoder::BNumber
[−]
[src]
pub struct BNumber { /* fields omitted */ }
Struct for representing numbers in Bencode format.
Methods
impl BNumber
[src]
Trait Implementations
impl Eq for BNumber
[src]
impl PartialEq for BNumber
[src]
fn eq(&self, __arg_0: &BNumber) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &BNumber) -> bool
This method tests for !=
.
impl Debug for BNumber
[src]
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_decoder::BElement; use bencode_decoder::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_decoder::BElement; use bencode_decoder::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_decoder::BElement; use bencode_decoder::BNumber; assert!(BNumber::decode("i400000000000000000000000000000000000000000000e".as_bytes()).is_err());