aboutsummaryrefslogtreecommitdiff
path: root/src/chain_methods.rs
diff options
context:
space:
mode:
authorSimon THOBY <git@nightmared.fr>2023-01-08 22:24:40 +0100
committerSimon THOBY <git@nightmared.fr>2023-01-08 22:28:42 +0100
commitdc3c2ffab697b5d8fce7c69f76528fcfdf2edf38 (patch)
treeaf2dcb95c21a009933492ea80d71b25bdb0e24f6 /src/chain_methods.rs
parent1d68fa40916295465be142b340f1a6381ea079a1 (diff)
rewrite the examples
Diffstat (limited to 'src/chain_methods.rs')
-rw-r--r--src/chain_methods.rs40
1 files changed, 0 insertions, 40 deletions
diff --git a/src/chain_methods.rs b/src/chain_methods.rs
deleted file mode 100644
index d384c35..0000000
--- a/src/chain_methods.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-use crate::{Batch, Chain, Hook, MsgType, Policy, Table};
-use std::ffi::CString;
-use std::rc::Rc;
-
-
-/// A helper trait over [`crate::Chain`].
-pub trait ChainMethods {
- /// Creates a new Chain instance from a [`crate::Hook`] over a [`crate::Table`].
- fn from_hook(hook: Hook, table: Rc<Table>) -> Self
- where Self: std::marker::Sized;
- /// Adds a [`crate::Policy`] to the current Chain.
- fn verdict(self, policy: Policy) -> Self;
- fn add_to_batch(self, batch: &mut Batch) -> Self;
-}
-
-
-impl ChainMethods for Chain {
- fn from_hook(hook: Hook, table: Rc<Table>) -> Self {
- let chain_name = match hook {
- Hook::PreRouting => "prerouting",
- Hook::Out => "out",
- Hook::PostRouting => "postrouting",
- Hook::Forward => "forward",
- Hook::In => "in",
- };
- let chain_name = CString::new(chain_name).unwrap();
- let mut chain = Chain::new(&chain_name, table);
- chain.set_hook(hook, 0);
- chain
- }
- fn verdict(mut self, policy: Policy) -> Self {
- self.set_policy(policy);
- self
- }
- fn add_to_batch(self, batch: &mut Batch) -> Self {
- batch.add(&self, MsgType::Add);
- self
- }
-}
-