11pub use nom:: IResult ;
22pub use cookie_factory:: GenError ;
33
4- use nom:: number:: streaming:: { le_u8, le_u16} ;
5- use nom:: { named, map, map_opt, take, count} ;
4+ use nom:: bytes:: streaming:: take;
5+ use nom:: combinator:: { map, map_opt} ;
6+ use nom:: multi:: count;
7+ use nom:: number:: complete:: { le_u8, le_u16} ;
68use cookie_factory:: { do_gen, gen_be_u8, gen_le_u16, gen_slice} ;
79
810use std:: { convert:: TryInto , net:: {
@@ -19,7 +21,7 @@ mod crypto;
1921/// The trait provides method to deserialize struct from raw bytes
2022pub trait FromBytes : Sized {
2123 /// Deserialize struct using `nom` from raw bytes
22- fn from_bytes ( i : & [ u8 ] ) -> IResult < & [ u8 ] , Self > ;
24+ fn from_bytes ( input : & [ u8 ] ) -> IResult < & [ u8 ] , Self > ;
2325}
2426
2527/// The trait provides method to serialize struct into raw bytes
@@ -38,9 +40,11 @@ impl ToBytes for IpAddr {
3840}
3941
4042impl FromBytes for Ipv4Addr {
41- named ! ( from_bytes<Ipv4Addr >, map!( count!( le_u8, 4 ) ,
42- |v| Ipv4Addr :: new( v[ 0 ] , v[ 1 ] , v[ 2 ] , v[ 3 ] )
43- ) ) ;
43+ fn from_bytes ( input : & [ u8 ] ) -> IResult < & [ u8 ] , Self > {
44+ map ( count ( le_u8, 4 ) ,
45+ |v| Ipv4Addr :: new ( v[ 0 ] , v[ 1 ] , v[ 2 ] , v[ 3 ] )
46+ ) ( input)
47+ }
4448}
4549
4650impl < const N : usize > ToBytes for [ u8 ; N ] {
@@ -50,7 +54,9 @@ impl<const N: usize> ToBytes for [u8; N] {
5054}
5155
5256impl < const N : usize > FromBytes for [ u8 ; N ] {
53- named ! ( from_bytes<[ u8 ; N ] >, map_opt!( take!( N ) , |bytes: & [ u8 ] | bytes. try_into( ) . ok( ) ) ) ;
57+ fn from_bytes ( input : & [ u8 ] ) -> IResult < & [ u8 ] , Self > {
58+ map_opt ( take ( N ) , |bytes : & [ u8 ] | bytes. try_into ( ) . ok ( ) ) ( input)
59+ }
5460}
5561
5662impl ToBytes for Ipv4Addr {
@@ -66,9 +72,11 @@ impl ToBytes for Ipv4Addr {
6672}
6773
6874impl FromBytes for Ipv6Addr {
69- named ! ( from_bytes<Ipv6Addr >, map!( count!( le_u16, 8 ) ,
70- |v| Ipv6Addr :: new( v[ 0 ] , v[ 1 ] , v[ 2 ] , v[ 3 ] , v[ 4 ] , v[ 5 ] , v[ 6 ] , v[ 7 ] )
71- ) ) ;
75+ fn from_bytes ( i : & [ u8 ] ) -> IResult < & [ u8 ] , Self > {
76+ map ( count ( le_u16, 8 ) ,
77+ |v| Ipv6Addr :: new ( v[ 0 ] , v[ 1 ] , v[ 2 ] , v[ 3 ] , v[ 4 ] , v[ 5 ] , v[ 6 ] , v[ 7 ] )
78+ ) ( i)
79+ }
7280}
7381
7482impl ToBytes for Ipv6Addr {
0 commit comments