Struct ppp::v1::Header [−][src]
Expand description
A text PROXY protocol header that borrows the input string.
Examples
Worst Case (from bytes)
use ppp::v1::{Addresses, Header, UNKNOWN};
let input = "PROXY UNKNOWN ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 65535 65535\r\n";
let header = Header::try_from(input.as_bytes()).unwrap();
assert_eq!(header, Header::new(input, Addresses::Unknown));
assert_eq!(header.protocol(), UNKNOWN);
assert_eq!(header.addresses_str(), "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 65535 65535");
UNKNOWN
use ppp::v1::{Addresses, Header, UNKNOWN};
let input = "PROXY UNKNOWN\r\nhello";
let header = Header::try_from(input).unwrap();
assert_eq!(header, Header::new("PROXY UNKNOWN\r\n", Addresses::Unknown));
assert_eq!(header.protocol(), UNKNOWN);
assert_eq!(header.addresses_str(), "");
TCP4
use std::net::Ipv4Addr;
use ppp::v1::{Header, Addresses, TCP4};
let input = "PROXY TCP4 127.0.1.2 192.168.1.101 80 443\r\n";
let header = Header::try_from(input).unwrap();
assert_eq!(header, Header::new(input, Addresses::new_tcp4(Ipv4Addr::new(127, 0, 1, 2), Ipv4Addr::new(192, 168, 1, 101), 80, 443)));
assert_eq!(header.protocol(), TCP4);
assert_eq!(header.addresses_str(), "127.0.1.2 192.168.1.101 80 443");
TCP6
use std::net::Ipv6Addr;
use ppp::v1::{Header, Addresses, TCP6};
let input = "PROXY TCP6 1234:5678:90ab:cdef:fedc:ba09:8765:4321 4321:8765:ba09:fedc:cdef:90ab:5678:1234 443 65535\r\n";
let header = Header::try_from(input).unwrap();
assert_eq!(
header,
Header::new(
input,
Addresses::new_tcp6(
Ipv6Addr::from([0x1234, 0x5678, 0x90AB, 0xCDEF, 0xFEDC, 0xBA09, 0x8765, 0x4321]),
Ipv6Addr::from([0x4321, 0x8765, 0xBA09, 0xFEDC, 0xCDEF, 0x90AB, 0x5678, 0x01234,]),
443,
65535
)
)
);
assert_eq!(header.protocol(), TCP6);
assert_eq!(header.addresses_str(), "1234:5678:90ab:cdef:fedc:ba09:8765:4321 4321:8765:ba09:fedc:cdef:90ab:5678:1234 443 65535");
Invalid
use ppp::v1::{Header, Addresses, ParseError};
assert_eq!(Err(ParseError::InvalidProtocol), "PROXY tcp4\r\n".parse::<Addresses>());
Fields
header: &'a str
addresses: Addresses
Implementations
Creates a new Header
with the given addresses and a reference to the original input.
The source and destination addresses portion of this Header
.
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for Header<'a>
impl<'a> UnwindSafe for Header<'a>
Blanket Implementations
Mutably borrows from an owned value. Read more