Skip to content

Commit 52382d8

Browse files
committed
fixes #45 - turn Log in a struct to group future arguments
1 parent d2c9bc7 commit 52382d8

File tree

1 file changed

+13
-21
lines changed

1 file changed

+13
-21
lines changed

nftnl/src/expr/log.rs

+13-21
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@ use nftnl_sys::{
55
};
66

77
/// 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>,
1210
}
1311

1412
#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)]
@@ -25,11 +23,8 @@ pub enum LogGroup {
2523

2624

2725
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 }
3328
}
3429
}
3530

@@ -39,16 +34,13 @@ impl Expression for Log {
3934
let expr = try_alloc!(sys::nftnl_expr_alloc(
4035
b"log\0" as *const _ as *const c_char
4136
));
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+
};
5244
expr
5345
}
5446
}
@@ -57,9 +49,9 @@ impl Expression for Log {
5749
#[macro_export]
5850
macro_rules! nft_expr_log {
5951
(group $group:ident) => {
60-
$crate::expr::Log::new_with_group($group)
52+
$crate::expr::Log::new($group)
6153
};
6254
() => {
63-
$crate::expr::Log::new()
55+
$crate::expr::Log::new(None)
6456
};
6557
}

0 commit comments

Comments
 (0)