Struct bencode_decoder::BNumber [] [src]

pub struct BNumber {
    // some fields omitted
}

Struct for representing numbers in Bencode format.

Methods

impl BNumber
[src]

fn new(number: i64) -> BNumber

Simple constructor from one i64.

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.

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

Formats the value using the given formatter.

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