1use std::net::IpAddr;
4
5use super::{AddressAddRequest, AddressDelRequest, AddressGetRequest};
6use crate::Handle;
7
8use netlink_packet_route::AddressMessage;
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(&self, index: u32, address: IpAddr, prefix_len: u8) -> AddressAddRequest {
24 AddressAddRequest::new(self.0.clone(), index, address, prefix_len)
25 }
26
27 pub fn del(&self, address: AddressMessage) -> AddressDelRequest {
29 AddressDelRequest::new(self.0.clone(), address)
30 }
31}