summaryrefslogtreecommitdiff
path: root/src/protocol/ipv4.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol/ipv4.rs')
-rw-r--r--src/protocol/ipv4.rs6
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;