pub struct PcapParser { /* private fields */ }
Expand description
Parses a Pcap from a slice of bytes.
You can match on PcapError::IncompleteBuffer
to known if the parser need more data.
§Example
use pcap_file::pcap::PcapParser;
use pcap_file::PcapError;
let pcap = vec![0_u8; 0];
let mut src = &pcap[..];
// Creates a new parser and parse the pcap header
let (rem, pcap_parser) = PcapParser::new(&pcap[..]).unwrap();
src = rem;
loop {
match pcap_parser.next_packet(src) {
Ok((rem, packet)) => {
// Do something
// Don't forget to update src
src = rem;
// No more data, if no more incoming either then this is the end of the file
if rem.is_empty() {
break;
}
},
Err(PcapError::IncompleteBuffer) => {}, // Load more data into src
Err(_) => {}, // Parsing error
}
}
Implementations§
Source§impl PcapParser
impl PcapParser
Sourcepub fn new(slice: &[u8]) -> PcapResult<(&[u8], PcapParser)>
pub fn new(slice: &[u8]) -> PcapResult<(&[u8], PcapParser)>
Creates a new PcapParser
.
Returns the remainder and the parser.
Sourcepub fn next_packet<'a>(
&self,
slice: &'a [u8],
) -> PcapResult<(&'a [u8], PcapPacket<'a>)>
pub fn next_packet<'a>( &self, slice: &'a [u8], ) -> PcapResult<(&'a [u8], PcapPacket<'a>)>
Returns the remainder and the next PcapPacket
.
Sourcepub fn next_raw_packet<'a>(
&self,
slice: &'a [u8],
) -> PcapResult<(&'a [u8], RawPcapPacket<'a>)>
pub fn next_raw_packet<'a>( &self, slice: &'a [u8], ) -> PcapResult<(&'a [u8], RawPcapPacket<'a>)>
Returns the remainder and the next RawPcapPacket
.
Sourcepub fn header(&self) -> PcapHeader
pub fn header(&self) -> PcapHeader
Returns the header of the pcap file.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PcapParser
impl RefUnwindSafe for PcapParser
impl Send for PcapParser
impl Sync for PcapParser
impl Unpin for PcapParser
impl UnwindSafe for PcapParser
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