rama_haproxy/protocol/
ip.rs1use std::net::{Ipv4Addr, Ipv6Addr};
4
5#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
7pub struct IPv4 {
8 pub source_address: Ipv4Addr,
10 pub source_port: u16,
12 pub destination_address: Ipv4Addr,
14 pub destination_port: u16,
16}
17
18impl IPv4 {
19 pub fn new<T: Into<Ipv4Addr>>(
21 source_address: T,
22 destination_address: T,
23 source_port: u16,
24 destination_port: u16,
25 ) -> Self {
26 IPv4 {
27 source_address: source_address.into(),
28 source_port,
29 destination_address: destination_address.into(),
30 destination_port,
31 }
32 }
33}
34#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
36pub struct IPv6 {
37 pub source_address: Ipv6Addr,
39 pub source_port: u16,
41 pub destination_address: Ipv6Addr,
43 pub destination_port: u16,
45}
46
47impl IPv6 {
48 pub fn new<T: Into<Ipv6Addr>>(
50 source_address: T,
51 destination_address: T,
52 source_port: u16,
53 destination_port: u16,
54 ) -> Self {
55 IPv6 {
56 source_address: source_address.into(),
57 source_port,
58 destination_address: destination_address.into(),
59 destination_port,
60 }
61 }
62}