1
1
use crate :: Headers ;
2
- use serde:: Serialize ;
2
+ use serde:: { Deserialize , Serialize } ;
3
3
use std:: collections:: HashMap ;
4
4
use std:: fmt;
5
5
6
6
/// Define source value
7
7
///
8
8
/// [read more](https://content-security-policy.com)
9
- #[ derive( Debug ) ]
9
+ #[ derive( Debug , PartialEq , Eq , Copy , Clone , Hash ) ]
10
10
pub enum Source {
11
11
/// Set source `'self'`
12
12
SameOrigin ,
13
13
/// Set source `'src'`
14
- SRC ,
14
+ Src ,
15
15
/// Set source `'none'`
16
16
None ,
17
17
/// Set source `'unsafe-inline'`
@@ -21,7 +21,7 @@ pub enum Source {
21
21
/// Set source `mediastream:`
22
22
Mediastream ,
23
23
/// Set source `https:`
24
- HTTPS ,
24
+ Https ,
25
25
/// Set source `blob:`
26
26
Blob ,
27
27
/// Set source `filesystem:`
@@ -38,12 +38,12 @@ impl fmt::Display for Source {
38
38
fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
39
39
match * self {
40
40
Source :: SameOrigin => write ! ( f, "'self'" ) ,
41
- Source :: SRC => write ! ( f, "'src'" ) ,
41
+ Source :: Src => write ! ( f, "'src'" ) ,
42
42
Source :: None => write ! ( f, "'none'" ) ,
43
43
Source :: UnsafeInline => write ! ( f, "'unsafe-inline'" ) ,
44
44
Source :: Data => write ! ( f, "data:" ) ,
45
45
Source :: Mediastream => write ! ( f, "mediastream:" ) ,
46
- Source :: HTTPS => write ! ( f, "https:" ) ,
46
+ Source :: Https => write ! ( f, "https:" ) ,
47
47
Source :: Blob => write ! ( f, "blob:" ) ,
48
48
Source :: Filesystem => write ! ( f, "filesystem:" ) ,
49
49
Source :: StrictDynamic => write ! ( f, "'strict-dynamic'" ) ,
@@ -57,12 +57,12 @@ impl AsRef<str> for Source {
57
57
fn as_ref ( & self ) -> & str {
58
58
match * self {
59
59
Source :: SameOrigin => "'self'" ,
60
- Source :: SRC => "'src'" ,
60
+ Source :: Src => "'src'" ,
61
61
Source :: None => "'none'" ,
62
62
Source :: UnsafeInline => "'unsafe-inline'" ,
63
63
Source :: Data => "data:" ,
64
64
Source :: Mediastream => "mediastream:" ,
65
- Source :: HTTPS => "https:" ,
65
+ Source :: Https => "https:" ,
66
66
Source :: Blob => "blob:" ,
67
67
Source :: Filesystem => "filesystem:" ,
68
68
Source :: StrictDynamic => "'strict-dynamic'" ,
@@ -75,7 +75,7 @@ impl AsRef<str> for Source {
75
75
/// Define `report-to` directive value
76
76
///
77
77
/// [MDN | report-to](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to)
78
- #[ derive( Serialize , Debug ) ]
78
+ #[ derive( Debug , Clone , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
79
79
pub struct ReportTo {
80
80
#[ serde( skip_serializing_if = "Option::is_none" ) ]
81
81
group : Option < String > ,
@@ -88,7 +88,7 @@ pub struct ReportTo {
88
88
/// Define `endpoints` for `report-to` directive value
89
89
///
90
90
/// [MDN | report-to](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to)
91
- #[ derive( Serialize , Debug ) ]
91
+ #[ derive( Debug , Clone , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
92
92
pub struct ReportToEndpoint {
93
93
url : String ,
94
94
}
@@ -127,7 +127,7 @@ pub struct ReportToEndpoint {
127
127
/// let header = headers.iter().next().unwrap();
128
128
/// assert_eq!(header, "base-uri 'none'; default-src 'self' areweasyncyet.rs; object-src 'none'; script-src 'self' 'unsafe-inline'; upgrade-insecure-requests");
129
129
/// ```
130
- #[ derive( Debug ) ]
130
+ #[ derive( Debug , Clone , PartialEq , Eq ) ]
131
131
pub struct ContentSecurityPolicy {
132
132
policy : Vec < String > ,
133
133
report_only_flag : bool ,
0 commit comments