File tree 2 files changed +40
-0
lines changed
2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change @@ -90,7 +90,9 @@ mod util;
90
90
mod common;
91
91
mod map_ext;
92
92
mod request_builder_ext;
93
+ mod response_builder_ext;
93
94
94
95
pub use self :: common:: * ;
95
96
pub use self :: map_ext:: HeaderMapExt ;
96
97
pub use self :: request_builder_ext:: RequestBuilderExt ;
98
+ pub use self :: response_builder_ext:: ResponseBuilderExt ;
Original file line number Diff line number Diff line change
1
+ use crate :: { Header , HeaderMapExt } ;
2
+
3
+ /// An external trait adding helper methods to http response builder.
4
+ pub trait ResponseBuilderExt : self :: sealed:: Sealed {
5
+ /// Appends a typed header to this response builder.
6
+ fn typed_header ( self , header : impl Header ) -> Self ;
7
+ }
8
+
9
+ impl ResponseBuilderExt for http:: response:: Builder {
10
+ fn typed_header ( mut self , header : impl Header ) -> Self {
11
+ self . headers_mut ( )
12
+ . map ( |header_map| header_map. typed_insert ( header) ) ;
13
+ self
14
+ }
15
+ }
16
+
17
+ mod sealed {
18
+ pub trait Sealed { }
19
+ impl Sealed for http:: response:: Builder { }
20
+ }
21
+
22
+ #[ cfg( test) ]
23
+ mod tests {
24
+ use super :: ResponseBuilderExt ;
25
+
26
+ #[ test]
27
+ fn test_with_header_map_get_method ( ) {
28
+ let response = http:: Response :: builder ( )
29
+ . typed_header ( crate :: ContentType :: text ( ) )
30
+ . body ( ( ) )
31
+ . unwrap ( ) ;
32
+
33
+ assert_eq ! (
34
+ response. headers( ) . get( http:: header:: CONTENT_TYPE ) . unwrap( ) ,
35
+ "text/plain" ,
36
+ ) ;
37
+ }
38
+ }
You can’t perform that action at this time.
0 commit comments