diff options
Diffstat (limited to 'src/protocol/ipv4.rs')
| -rw-r--r-- | src/protocol/ipv4.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/protocol/ipv4.rs b/src/protocol/ipv4.rs index 4f07926..60ec01a 100644 --- a/src/protocol/ipv4.rs +++ b/src/protocol/ipv4.rs @@ -1,3 +1,4 @@ +use crate::protocol::codec::Decode; use crate::protocol::ip::IPProtocol; use nom::bits; use nom::error::Error; @@ -70,8 +71,8 @@ fn address_v4_decode(input: &[u8]) -> IResult<&[u8], Ipv4Addr> { Ok((input, Ipv4Addr::from(<[u8; 4]>::try_from(ipv4).unwrap()))) } -impl IPv4Header { - pub fn decode(input: &[u8]) -> IResult<&[u8], IPv4Header> { +impl Decode<IPv4Header> for IPv4Header { + fn decode(input: &[u8]) -> IResult<&[u8], IPv4Header> { let (input, verihl) = version_hlen_decode(input)?; let (input, tos) = number::streaming::be_u8(input)?; let (input, length) = number::streaming::be_u16(input)?; @@ -112,6 +113,7 @@ impl IPv4Header { #[cfg(test)] mod tests { use super::IPv4Header; + use crate::protocol::codec::Decode; use crate::protocol::ip::IPProtocol; use std::net::Ipv4Addr; |
