pcap_parser/
blocks.rs

1use crate::pcap::{LegacyPcapBlock, PcapHeader};
2use crate::pcapng::Block;
3
4/// A block from a Pcap or PcapNG file
5pub enum PcapBlockOwned<'a> {
6    Legacy(LegacyPcapBlock<'a>),
7    LegacyHeader(PcapHeader),
8    NG(Block<'a>),
9}
10
11/// A block from a Pcap or PcapNG file
12pub enum PcapBlock<'a> {
13    Legacy(&'a LegacyPcapBlock<'a>),
14    LegacyHeader(&'a PcapHeader),
15    NG(&'a Block<'a>),
16}
17
18impl<'a> From<LegacyPcapBlock<'a>> for PcapBlockOwned<'a> {
19    fn from(b: LegacyPcapBlock<'a>) -> PcapBlockOwned<'a> {
20        PcapBlockOwned::Legacy(b)
21    }
22}
23
24impl<'a> From<PcapHeader> for PcapBlockOwned<'a> {
25    fn from(b: PcapHeader) -> PcapBlockOwned<'a> {
26        PcapBlockOwned::LegacyHeader(b)
27    }
28}
29
30impl<'a> From<Block<'a>> for PcapBlockOwned<'a> {
31    fn from(b: Block<'a>) -> PcapBlockOwned<'a> {
32        PcapBlockOwned::NG(b)
33    }
34}
35
36impl<'a> From<&'a LegacyPcapBlock<'a>> for PcapBlock<'a> {
37    fn from(b: &'a LegacyPcapBlock) -> PcapBlock<'a> {
38        PcapBlock::Legacy(b)
39    }
40}
41
42impl<'a> From<&'a PcapHeader> for PcapBlock<'a> {
43    fn from(b: &'a PcapHeader) -> PcapBlock<'a> {
44        PcapBlock::LegacyHeader(b)
45    }
46}
47
48impl<'a> From<&'a Block<'a>> for PcapBlock<'a> {
49    fn from(b: &'a Block) -> PcapBlock<'a> {
50        PcapBlock::NG(b)
51    }
52}