aboutsummaryrefslogtreecommitdiff
path: root/src/expr/bitwise.rs
diff options
context:
space:
mode:
authorSimon THOBY <git@nightmared.fr>2022-12-28 16:28:42 +0100
committerSimon THOBY <git@nightmared.fr>2023-01-08 13:46:02 +0100
commit9821456643bcb6a6a14e6b2a0d3895701f123d03 (patch)
tree094e023f855f4d153988da070079c3199dbcbe9d /src/expr/bitwise.rs
parent603d540a45c968ad48071a73e1452f87abea377b (diff)
Re-implement set support
Diffstat (limited to 'src/expr/bitwise.rs')
-rw-r--r--src/expr/bitwise.rs17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/expr/bitwise.rs b/src/expr/bitwise.rs
index 29d2d63..fb40a04 100644
--- a/src/expr/bitwise.rs
+++ b/src/expr/bitwise.rs
@@ -1,7 +1,8 @@
use rustables_macros::nfnetlink_struct;
-use super::{Expression, ExpressionData, Register};
-use crate::parser::DecodeError;
+use super::{Expression, Register};
+use crate::error::BuilderError;
+use crate::parser_impls::NfNetlinkData;
use crate::sys::{
NFTA_BITWISE_DREG, NFTA_BITWISE_LEN, NFTA_BITWISE_MASK, NFTA_BITWISE_SREG, NFTA_BITWISE_XOR,
};
@@ -16,9 +17,9 @@ pub struct Bitwise {
#[field(NFTA_BITWISE_LEN)]
len: u32,
#[field(NFTA_BITWISE_MASK)]
- mask: ExpressionData,
+ mask: NfNetlinkData,
#[field(NFTA_BITWISE_XOR)]
- xor: ExpressionData,
+ xor: NfNetlinkData,
}
impl Expression for Bitwise {
@@ -30,17 +31,17 @@ impl Expression for Bitwise {
impl Bitwise {
/// Returns a new `Bitwise` instance that first masks the value it's applied to with `mask` and
/// then performs xor with the value in `xor`
- pub fn new(mask: impl Into<Vec<u8>>, xor: impl Into<Vec<u8>>) -> Result<Self, DecodeError> {
+ pub fn new(mask: impl Into<Vec<u8>>, xor: impl Into<Vec<u8>>) -> Result<Self, BuilderError> {
let mask = mask.into();
let xor = xor.into();
if mask.len() != xor.len() {
- return Err(DecodeError::IncompatibleLength);
+ return Err(BuilderError::IncompatibleLength);
}
Ok(Bitwise::default()
.with_sreg(Register::Reg1)
.with_dreg(Register::Reg1)
.with_len(mask.len() as u32)
- .with_xor(ExpressionData::default().with_value(xor))
- .with_mask(ExpressionData::default().with_value(mask)))
+ .with_xor(NfNetlinkData::default().with_value(xor))
+ .with_mask(NfNetlinkData::default().with_value(mask)))
}
}