1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
#[derive(Clone, Copy, PartialEq, Eq, Debug)] pub enum ReferrerPolicy { Default, NoReferrer, NoReferrerWhenDowngrade, SameOrigin, Origin, StrictOrigin, OriginWhenCrossOrigin, StrictOriginWhenCrossOrigin, UnsafeUrl, } impl ReferrerPolicy { pub(crate) fn from_str(policy: &str) -> Self { match policy { "no-referrer" => ReferrerPolicy::NoReferrer, "no-referrer-when-downgrade" => ReferrerPolicy::NoReferrerWhenDowngrade, "same-origin" => ReferrerPolicy::SameOrigin, "origin" => ReferrerPolicy::Origin, "strict-origin" => ReferrerPolicy::StrictOrigin, "origin-when-cross-origin" => ReferrerPolicy::OriginWhenCrossOrigin, "strict-origin-when-cross-origin" => ReferrerPolicy::StrictOriginWhenCrossOrigin, "unsafe-url" => ReferrerPolicy::UnsafeUrl, _ => ReferrerPolicy::Default, } } } impl Default for ReferrerPolicy { fn default() -> Self { ReferrerPolicy::Default } } impl AsRef<str> for ReferrerPolicy { fn as_ref(&self) -> &str { match self { ReferrerPolicy::Default => "", ReferrerPolicy::NoReferrer => "no-referrer", ReferrerPolicy::NoReferrerWhenDowngrade => "no-referrer-when-downgrade", ReferrerPolicy::SameOrigin => "same-origin", ReferrerPolicy::Origin => "origin", ReferrerPolicy::StrictOrigin => "strict-origin", ReferrerPolicy::OriginWhenCrossOrigin => "origin-when-cross-origin", ReferrerPolicy::StrictOriginWhenCrossOrigin => "strict-origin-when-cross-origin", ReferrerPolicy::UnsafeUrl => "unsafe-url", } } }