Struct tarrasque::Stream [−][src]
pub struct Stream<'a>(pub &'a [u8]);
A stream of bytes from which values can be extracted.
Methods
impl<'a> Stream<'a>
[src]
impl<'a> Stream<'a>
pub fn extract<T, P>(&mut self, parameter: P) -> ExtractResult<'a, T> where
T: Extract<'a, P>,
[src]
pub fn extract<T, P>(&mut self, parameter: P) -> ExtractResult<'a, T> where
T: Extract<'a, P>,
Extracts bytes from this stream as a T
.
Example
let mut stream = Stream(&[1, 2]); assert_eq!(stream.extract::<u8, _>(()), Ok(0x01)); assert_eq!(stream.extract::<u8, _>(()), Ok(0x02)); assert_eq!(stream.extract::<u8, _>(()), Err(ExtractError::Insufficient(1)));
pub fn peek<T, P>(&mut self, parameter: P) -> ExtractResult<'a, T> where
T: Extract<'a, P>,
[src]
pub fn peek<T, P>(&mut self, parameter: P) -> ExtractResult<'a, T> where
T: Extract<'a, P>,
Returns bytes from this stream as a T
without extracting the bytes.
Example
let mut stream = Stream(&[1, 2, 3, 4]); assert_eq!(stream.peek::<u16, _>(()), Ok(0x0102)); assert_eq!(stream.extract::<u16, _>(()), Ok(0x0102)); assert_eq!(stream.peek::<u16, _>(()), Ok(0x0304)); assert_eq!(stream.extract::<u16, _>(()), Ok(0x0304)); assert_eq!(stream.peek::<u16, _>(()), Err(ExtractError::Insufficient(2))); assert_eq!(stream.extract::<u16, _>(()), Err(ExtractError::Insufficient(2)));
pub fn skip(&mut self, n: usize)
[src]
pub fn skip(&mut self, n: usize)
Skips the supplied number of bytes in this stream.
Example
let mut stream = Stream(&[1, 2, 3, 4]); stream.skip(2); assert_eq!(stream.extract::<u16, _>(()), Ok(0x0304)); assert_eq!(stream.extract::<u16, _>(()), Err(ExtractError::Insufficient(2)));
pub fn skip_while<F: Fn(u8) -> bool>(&mut self, f: F)
[src]
pub fn skip_while<F: Fn(u8) -> bool>(&mut self, f: F)
Skips bytes in this stream while the supplied condition is true for those bytes.
Example
let mut stream = Stream(&[1, 2, 3, 4]); stream.skip_while(|b| b < 3); assert_eq!(stream.extract::<u16, _>(()), Ok(0x0304)); assert_eq!(stream.extract::<u16, _>(()), Err(ExtractError::Insufficient(2)));
Trait Implementations
impl<'a> Copy for Stream<'a>
[src]
impl<'a> Copy for Stream<'a>
impl<'a> Clone for Stream<'a>
[src]
impl<'a> Clone for Stream<'a>
fn clone(&self) -> Stream<'a>
[src]
fn clone(&self) -> Stream<'a>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0
[src]Performs copy-assignment from source
. Read more
impl<'a> Debug for Stream<'a>
[src]
impl<'a> Debug for Stream<'a>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<'a> PartialEq for Stream<'a>
[src]
impl<'a> PartialEq for Stream<'a>
fn eq(&self, other: &Stream<'a>) -> bool
[src]
fn eq(&self, other: &Stream<'a>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Stream<'a>) -> bool
[src]
fn ne(&self, other: &Stream<'a>) -> bool
This method tests for !=
.
impl<'a> Eq for Stream<'a>
[src]
impl<'a> Eq for Stream<'a>