1use std::net::IpAddr;
4
5use netlink_packet_route::address::AddressMessage;
6
7use super::{AddressAddRequest, AddressDelRequest, AddressGetRequest};
8use crate::Handle;
9
10pub struct AddressHandle(Handle);
11
12impl AddressHandle {
13 pub fn new(handle: Handle) -> Self {
14 AddressHandle(handle)
15 }
16
17 pub fn get(&self) -> AddressGetRequest {
19 AddressGetRequest::new(self.0.clone())
20 }
21
22 pub fn add(
24 &self,
25 index: u32,
26 address: IpAddr,
27 prefix_len: u8,
28 ) -> AddressAddRequest {
29 AddressAddRequest::new(self.0.clone(), index, address, prefix_len)
30 }
31
32 pub fn del(&self, address: AddressMessage) -> AddressDelRequest {
34 AddressDelRequest::new(self.0.clone(), address)
35 }
36}