pub struct ProxyHdrV1;Expand description
A HaProxyV1 composer.
Provides an interface to HapProtoV1.
A function Self::from_str provides an option to avoid unnecesary conversions
of string literals and variables to SocketAddr. A TryIntoSockAddr is
implemented to all string types.
§Example
ⓘ
let res =
ProxyHdrV1::from_str(ProtocolV1Inet::Tcp4, "192.168.1.1:333", "127.0.0.1:444")
.unwrap();
let msg = res.to_string();Implementations§
Source§impl ProxyHdrV1
impl ProxyHdrV1
Sourcepub fn new(src: SocketAddr, dst: SocketAddr) -> HaProxRes<HapProtoV1>
pub fn new(src: SocketAddr, dst: SocketAddr) -> HaProxRes<HapProtoV1>
Creates new message.
The src and dst must be of the same IP version type.
§Returns
The following errors are returned:
- crate::error::HaProxErrType::ArgumentEinval - if
srcordstare not of same type.
Sourcepub fn from_str<S: TryIntoSockAddr>(src: S, dst: S) -> HaProxRes<HapProtoV1>
pub fn from_str<S: TryIntoSockAddr>(src: S, dst: S) -> HaProxRes<HapProtoV1>
Creates new message.
The src and dst must be of the same IP version type.
The function takes the argument of the following formats:
-
ipv4:port i.e “127.0.0.1:4444”
-
[ipv6]:port i,e “[0acf:5d35:b4c4:731c:2442:2f17:c6f9:5b7f]:333”
§Returns
The following errors are returned:
- crate::error::HaProxErrType::ArgumentEinval - if
srcordstare not of same type / parsing error.
Examples found in repository?
examples/example_v1.rs (line 7)
4fn main()
5{
6 let res =
7 ProxyHdrV1::from_str("192.168.1.1:333", "127.0.0.1:444")
8 .unwrap();
9
10 let out = res.to_string();
11
12 println!("{}", out);
13
14 let pv1 =
15 ProxyV1Parser
16 ::try_from_str(out.as_str(), false)
17 .unwrap();
18
19 assert_eq!(pv1.get_inet(), ProtocolV1Inet::Tcp4);
20 assert_eq!(pv1.get_src_addr(), Some("192.168.1.1".parse().unwrap()));
21 assert_eq!(pv1.get_src_port(), Some(333));
22 assert_eq!(pv1.get_dst_addr(), Some("127.0.0.1".parse().unwrap()));
23 assert_eq!(pv1.get_dst_port(), Some(444));
24}Sourcepub fn new_ipaddr(
src_addr: IpAddr,
src_port: u16,
dst_addr: IpAddr,
dst_port: u16,
) -> HaProxRes<HapProtoV1>
pub fn new_ipaddr( src_addr: IpAddr, src_port: u16, dst_addr: IpAddr, dst_port: u16, ) -> HaProxRes<HapProtoV1>
Creates new message.
The src and dst must be of the same IP version type.
§Returns
The following errors are returned:
- crate::error::HaProxErrType::ArgumentEinval - if
srcordstare not of same type.
Sourcepub fn new_ip4(
src_addr: Ipv4Addr,
src_port: u16,
dst_addr: Ipv4Addr,
dst_port: u16,
) -> HaProxRes<HapProtoV1>
pub fn new_ip4( src_addr: Ipv4Addr, src_port: u16, dst_addr: Ipv4Addr, dst_port: u16, ) -> HaProxRes<HapProtoV1>
Sourcepub fn new_ip6(
src_addr: Ipv6Addr,
src_port: u16,
dst_addr: Ipv6Addr,
dst_port: u16,
) -> HaProxRes<HapProtoV1>
pub fn new_ip6( src_addr: Ipv6Addr, src_port: u16, dst_addr: Ipv6Addr, dst_port: u16, ) -> HaProxRes<HapProtoV1>
Sourcepub fn new_unknown() -> HapProtoV1
pub fn new_unknown() -> HapProtoV1
Creates new message for inet UNKNOWN.
Trait Implementations§
Source§impl Clone for ProxyHdrV1
impl Clone for ProxyHdrV1
Source§fn clone(&self) -> ProxyHdrV1
fn clone(&self) -> ProxyHdrV1
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProxyHdrV1
impl Debug for ProxyHdrV1
impl Copy for ProxyHdrV1
Auto Trait Implementations§
impl Freeze for ProxyHdrV1
impl RefUnwindSafe for ProxyHdrV1
impl Send for ProxyHdrV1
impl Sync for ProxyHdrV1
impl Unpin for ProxyHdrV1
impl UnwindSafe for ProxyHdrV1
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more