#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum ApplicationLayerProtocolNegotiationProtocol
{
HTTP_0_9,
HTTP_1_0,
HTTP_1_1,
SPDY_1,
SPDY_2,
SPDY_3,
StunTurn,
StunNatDiscovery,
HTTP_2_over_TLS,
HTTP_2_over_TCP,
WebRTC,
ConfidentialWebRTC,
FTP,
IMAP,
POP3,
ManageSieve,
CoAP,
XMPP_Client,
XMPP_Server,
Unofficial(Vec<u8>),
}
impl ApplicationLayerProtocolNegotiationProtocol
{
#[inline(always)]
pub fn to_vec(&self) -> Vec<u8>
{
use self::ApplicationLayerProtocolNegotiationProtocol::*;
match &self
{
HTTP_0_9 => b"http/0.9".to_vec(),
HTTP_1_0 => b"http/1.0".to_vec(),
HTTP_1_1 => b"http/1.1".to_vec(),
SPDY_1 => b"spdy/1".to_vec(),
SPDY_2 => b"spdy/2".to_vec(),
SPDY_3 => b"spdy/3".to_vec(),
StunTurn => b"stun.turn".to_vec(),
StunNatDiscovery => b"stun.nat-discovery".to_vec(),
HTTP_2_over_TLS => b"h2".to_vec(),
HTTP_2_over_TCP => b"h2c".to_vec(),
WebRTC => b"webrtc".to_vec(),
ConfidentialWebRTC => b"c-webrtc".to_vec(),
FTP => b"ftp".to_vec(),
IMAP => b"imap".to_vec(),
POP3 => b"pop3".to_vec(),
ManageSieve => b"managesieve".to_vec(),
CoAP => b"coap".to_vec(),
XMPP_Client => b"xmpp-client".to_vec(),
XMPP_Server => b"xmpp-server".to_vec(),
Unofficial(ref value) => value.clone(),
}
}
}