summaryrefslogtreecommitdiff
path: root/src/protocol/ipv6.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol/ipv6.rs')
-rw-r--r--src/protocol/ipv6.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/protocol/ipv6.rs b/src/protocol/ipv6.rs
index f21c4da..c334ea2 100644
--- a/src/protocol/ipv6.rs
+++ b/src/protocol/ipv6.rs
@@ -1,3 +1,4 @@
+use crate::protocol::codec::Decode;
use crate::protocol::ip::IPProtocol;
use nom::bits;
use nom::bytes;
@@ -70,8 +71,8 @@ fn address_v6_decode(input: &[u8]) -> IResult<&[u8], Ipv6Addr> {
Ok((input, Ipv6Addr::from(<[u8; 16]>::try_from(ipv6).unwrap())))
}
-impl IPv6Header {
- pub fn decode(input: &[u8]) -> IResult<&[u8], IPv6Header> {
+impl Decode<IPv6Header> for IPv6Header {
+ fn decode(input: &[u8]) -> IResult<&[u8], IPv6Header> {
let (input, ver_tc) = half_byte_decode(input)?;
let (input, tc_fl) = half_byte_decode(input)?;
let (input, fl): (_, u32) =
@@ -108,6 +109,7 @@ impl IPv6Header {
#[cfg(test)]
mod tests {
use super::IPv6Header;
+ use crate::protocol::codec::Decode;
use crate::protocol::ip::IPProtocol;
use std::net::Ipv6Addr;