use ipv4::packet::IpV4Packet; use crate::error::*; pub mod ipv4; pub enum IpPacket { V4(IpV4Packet), } impl> IpPacket { pub fn new(buffer: B) -> Result { match buffer.as_ref()[0] >> 4 { 4 => Ok(IpPacket::V4(IpV4Packet::new(buffer)?)), _ => Err(Error::InvalidPacket), } } }