diff --git a/h3/src/ext.rs b/h3/src/ext.rs index ce9a7acb..e9d28c1e 100644 --- a/h3/src/ext.rs +++ b/h3/src/ext.rs @@ -15,6 +15,8 @@ impl Protocol { pub const CONNECT_UDP: Protocol = Protocol(ProtocolInner::ConnectUdp); /// RFC 9484 protocol pub const CONNECT_IP: Protocol = Protocol(ProtocolInner::ConnectIp); + /// RFC 9220 (WebSocket) protocol + pub const WEBSOCKET: Protocol = Protocol(ProtocolInner::WebSocket); /// Return a &str representation of the `:protocol` pseudo-header value #[inline] @@ -23,6 +25,7 @@ impl Protocol { ProtocolInner::WebTransport => "webtransport", ProtocolInner::ConnectUdp => "connect-udp", ProtocolInner::ConnectIp => "connect-ip", + ProtocolInner::WebSocket => "websocket", } } } @@ -32,6 +35,7 @@ enum ProtocolInner { WebTransport, ConnectUdp, ConnectIp, + WebSocket, } /// Error when parsing the protocol @@ -45,6 +49,7 @@ impl FromStr for Protocol { "webtransport" => Ok(Self(ProtocolInner::WebTransport)), "connect-udp" => Ok(Self(ProtocolInner::ConnectUdp)), "connect-ip" => Ok(Self(ProtocolInner::ConnectIp)), + "websocket" => Ok(Self(ProtocolInner::WebSocket)), _ => Err(InvalidProtocol), } }