Struct bencode_decoder::BNumber [] [src]

pub struct BNumber { /* fields omitted */ }

Struct for representing numbers in Bencode format.

Methods

impl BNumber
[src]

Simple constructor from one i64.

Trait Implementations

impl Eq for BNumber
[src]

impl PartialEq for BNumber
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Debug for BNumber
[src]

Formats the value using the given formatter.

impl BElement<BNumber> for BNumber
[src]

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());