pub struct BNumber { /* private fields */ }
Expand description
Struct for representing numbers in Bencode format.
Implementations§
Trait Implementations§
Source§impl BElement<BNumber> for BNumber
impl BElement<BNumber> for BNumber
Source§fn decode(encoded: &[u8]) -> Result<(usize, BNumber), &'static str>
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());
impl Eq for BNumber
impl StructuralPartialEq for BNumber
Auto Trait Implementations§
impl Freeze for BNumber
impl RefUnwindSafe for BNumber
impl Send for BNumber
impl Sync for BNumber
impl Unpin for BNumber
impl UnwindSafe for BNumber
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more