@@ -61,7 +61,7 @@ use {Error, Header, HeaderValue};
6161/// [RFC6455_11.3.2]: https://tools.ietf.org/html/rfc6455#section-11.3.2
6262/// [RFC7692_7]: https://tools.ietf.org/html/rfc7692#section-7
6363#[ derive( Clone , Debug , Eq , PartialEq ) ]
64- pub struct SecWebsocketExtensions ( pub Vec < WebsocketExtension > ) ;
64+ pub struct SecWebsocketExtensions ( Vec < WebsocketExtension > ) ;
6565
6666impl Header for SecWebsocketExtensions {
6767 fn name ( ) -> & ' static :: HeaderName {
@@ -93,6 +93,11 @@ impl Header for SecWebsocketExtensions {
9393}
9494
9595impl SecWebsocketExtensions {
96+ /// Construct a `SecWebSocketExtensions` from `Vec<WebsocketExtension>`.
97+ pub fn new ( extensions : Vec < WebsocketExtension > ) -> Self {
98+ SecWebsocketExtensions ( extensions)
99+ }
100+
96101 /// Construct a `SecWebSocketExtensions` from a static string.
97102 ///
98103 /// ## Panic
@@ -313,13 +318,13 @@ mod tests {
313318 #[ test]
314319 fn extensions_encode ( ) {
315320 let extensions =
316- SecWebsocketExtensions ( vec ! [ WebsocketExtension :: from_static( "foo; bar; baz=1" ) ] ) ;
321+ SecWebsocketExtensions :: new ( vec ! [ WebsocketExtension :: from_static( "foo; bar; baz=1" ) ] ) ;
317322 let headers = test_encode ( extensions) ;
318323 let mut vals = headers. get_all ( SEC_WEBSOCKET_EXTENSIONS ) . into_iter ( ) ;
319324 assert_eq ! ( vals. next( ) . unwrap( ) , "foo; bar; baz=1" ) ;
320325 assert_eq ! ( vals. next( ) , None ) ;
321326
322- let extensions = SecWebsocketExtensions ( vec ! [ ] ) ;
327+ let extensions = SecWebsocketExtensions :: new ( vec ! [ ] ) ;
323328 let headers = test_encode ( extensions) ;
324329 let mut vals = headers. get_all ( SEC_WEBSOCKET_EXTENSIONS ) . into_iter ( ) ;
325330 assert_eq ! ( vals. next( ) , None ) ;
@@ -328,7 +333,7 @@ mod tests {
328333 #[ test]
329334 fn extensions_encode_combine ( ) {
330335 // Multiple extensions are combined into a single header
331- let extensions = SecWebsocketExtensions ( vec ! [
336+ let extensions = SecWebsocketExtensions :: new ( vec ! [
332337 WebsocketExtension :: from_static( "foo1; bar" ) ,
333338 WebsocketExtension :: from_static( "foo2; bar" ) ,
334339 WebsocketExtension :: from_static( "baz; quux" ) ,
@@ -341,7 +346,7 @@ mod tests {
341346
342347 #[ test]
343348 fn extensions_iter ( ) {
344- let extensions = SecWebsocketExtensions ( vec ! [
349+ let extensions = SecWebsocketExtensions :: new ( vec ! [
345350 WebsocketExtension :: from_static( "foo; bar1; bar2=3" ) ,
346351 WebsocketExtension :: from_static( "baz; quux" ) ,
347352 ] ) ;
0 commit comments