@@ -5,10 +5,8 @@ use nftnl_sys::{
5
5
} ;
6
6
7
7
/// A log expression.
8
- #[ derive( Debug , Clone , Eq , PartialEq , Hash ) ]
9
- pub enum Log {
10
- NoGroup ,
11
- Group ( LogGroup ) ,
8
+ pub struct Log {
9
+ group : Option < LogGroup > ,
12
10
}
13
11
14
12
#[ derive( Debug , Clone , Copy , Eq , PartialEq , Hash ) ]
@@ -25,11 +23,8 @@ pub enum LogGroup {
25
23
26
24
27
25
impl Log {
28
- pub fn new ( ) -> Self {
29
- Log :: NoGroup
30
- }
31
- pub fn new_with_group ( group : LogGroup ) -> Self {
32
- Log :: Group ( group)
26
+ pub fn new ( group : Option < LogGroup > ) -> Self {
27
+ Log { group }
33
28
}
34
29
}
35
30
@@ -39,16 +34,13 @@ impl Expression for Log {
39
34
let expr = try_alloc ! ( sys:: nftnl_expr_alloc(
40
35
b"log\0 " as * const _ as * const c_char
41
36
) ) ;
42
- match self {
43
- Log :: NoGroup => ( ) ,
44
- Log :: Group ( group) => {
45
- sys:: nftnl_expr_set_u32 (
46
- expr,
47
- sys:: NFTNL_EXPR_LOG_GROUP as u16 ,
48
- * group as u32 ,
49
- ) ;
50
- }
51
- }
37
+ if let Some ( group) = self . group {
38
+ sys:: nftnl_expr_set_u32 (
39
+ expr,
40
+ sys:: NFTNL_EXPR_LOG_GROUP as u16 ,
41
+ group as u32 ,
42
+ ) ;
43
+ } ;
52
44
expr
53
45
}
54
46
}
@@ -57,9 +49,9 @@ impl Expression for Log {
57
49
#[ macro_export]
58
50
macro_rules! nft_expr_log {
59
51
( group $group: ident) => {
60
- $crate:: expr:: Log :: new_with_group ( $group)
52
+ $crate:: expr:: Log :: new ( $group)
61
53
} ;
62
54
( ) => {
63
- $crate:: expr:: Log :: new( )
55
+ $crate:: expr:: Log :: new( None )
64
56
} ;
65
57
}
0 commit comments