Skip to main content

sark_core/http/response/
header_name.rs

1use http::HeaderName;
2
3pub trait HeaderNameRef: sealed::SealedHeaderNameRef {
4    fn as_header_name(&self) -> &str;
5}
6
7impl HeaderNameRef for HeaderName {
8    fn as_header_name(&self) -> &str {
9        self.as_str()
10    }
11}
12
13impl HeaderNameRef for &HeaderName {
14    fn as_header_name(&self) -> &str {
15        self.as_str()
16    }
17}
18
19impl HeaderNameRef for str {
20    fn as_header_name(&self) -> &str {
21        self
22    }
23}
24
25impl HeaderNameRef for &str {
26    fn as_header_name(&self) -> &str {
27        self
28    }
29}
30
31impl HeaderNameRef for String {
32    fn as_header_name(&self) -> &str {
33        self.as_str()
34    }
35}
36
37mod sealed {
38    pub trait SealedHeaderNameRef {}
39
40    impl SealedHeaderNameRef for http::HeaderName {}
41    impl SealedHeaderNameRef for &http::HeaderName {}
42    impl SealedHeaderNameRef for str {}
43    impl SealedHeaderNameRef for &str {}
44    impl SealedHeaderNameRef for String {}
45}