vmnet/port_forwarding/
mod.rs1use num_enum::{IntoPrimitive, TryFromPrimitive};
2use std::net::IpAddr;
3
4#[derive(Debug, Clone, Copy, PartialEq)]
6pub struct Rule {
7 pub address_family: AddressFamily,
8 pub protocol: Protocol,
9 pub external_port: u16,
10 pub addr: IpAddr,
11 pub internal_port: u16,
12}
13
14#[repr(u8)]
16#[derive(Debug, Clone, Copy, PartialEq, IntoPrimitive, TryFromPrimitive)]
17pub enum AddressFamily {
18 Ipv4 = libc::AF_INET as u8,
19 Ipv6 = libc::AF_INET6 as u8,
20}
21
22#[repr(u8)]
24#[derive(Debug, Clone, Copy, PartialEq, IntoPrimitive, TryFromPrimitive)]
25pub enum Protocol {
26 Tcp = libc::IPPROTO_TCP as u8,
27 Udp = libc::IPPROTO_UDP as u8,
28}