1use netlink_packet_route::rule::RuleMessage;
4
5use crate::{
6 Handle, IpVersion, RuleAddRequest, RuleDelRequest, RuleGetRequest,
7};
8
9#[derive(Debug, Clone)]
10pub struct RuleHandle(Handle);
11
12impl RuleHandle {
13 pub fn new(handle: Handle) -> Self {
14 RuleHandle(handle)
15 }
16
17 pub fn get(&self, ip_version: IpVersion) -> RuleGetRequest {
19 RuleGetRequest::new(self.0.clone(), ip_version)
20 }
21
22 pub fn add(&self) -> RuleAddRequest {
24 RuleAddRequest::new(self.0.clone())
25 }
26
27 pub fn del(&self, rule: RuleMessage) -> RuleDelRequest {
29 RuleDelRequest::new(self.0.clone(), rule)
30 }
31}