diff --git a/src/lib.rs b/src/lib.rs index 0fd58fc..3057ef0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,37 +5,37 @@ use tide::Next; use tide::Request; #[derive(Clone, Debug, PartialEq, Eq)] -pub enum Directive { - ChildSrc(Vec), - ConnectSrc(Vec), - DefaultSrc(Vec), - FontSrc(Vec), - FrameSrc(Vec), - ImgSrc(Vec), - ManifestSrc(Vec), - MediaSrc(Vec), - ObjectSrc(Vec), - PrefetchSrc(Vec), - ScriptSrc(Vec), - ScriptSrcElem(Vec), - ScriptSrcAttr(Vec), - StyleSrc(Vec), - StyleSrcElem(Vec), - StyleSrcAttr(Vec), - WorkerSrc(Vec), - BaseUri(Vec), - PluginTypes(Vec), +pub enum Directive<'a> { + ChildSrc(Vec<&'a str>), + ConnectSrc(Vec<&'a str>), + DefaultSrc(Vec<&'a str>), + FontSrc(Vec<&'a str>), + FrameSrc(Vec<&'a str>), + ImgSrc(Vec<&'a str>), + ManifestSrc(Vec<&'a str>), + MediaSrc(Vec<&'a str>), + ObjectSrc(Vec<&'a str>), + PrefetchSrc(Vec<&'a str>), + ScriptSrc(Vec<&'a str>), + ScriptSrcElem(Vec<&'a str>), + ScriptSrcAttr(Vec<&'a str>), + StyleSrc(Vec<&'a str>), + StyleSrcElem(Vec<&'a str>), + StyleSrcAttr(Vec<&'a str>), + WorkerSrc(Vec<&'a str>), + BaseUri(Vec<&'a str>), + PluginTypes(Vec<&'a str>), Sandbox(Sandbox), - FormAction(Vec), - FrameAncestors(Vec), - NavigateTo(Vec), + FormAction(Vec<&'a str>), + FrameAncestors(Vec<&'a str>), + NavigateTo(Vec<&'a str>), ReportTo(String), RequireTrustedTypesFor(TrustedTypesTarget), - TrustedTypes(TrustedTypes), + TrustedTypes(TrustedTypes<'a>), UpgradeInsecureRequests, } -impl Display for Directive { +impl<'a> Display for Directive<'a> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> { match self { Self::ChildSrc(sources) => write!(f, "{}", sources.join(" ")), @@ -127,15 +127,15 @@ impl Display for TrustedTypesTarget { } #[derive(Clone, Debug, PartialEq, Eq)] -pub enum TrustedTypes { +pub enum TrustedTypes<'a> { None, Values { - policy_names: Vec, + policy_names: Vec<&'a str>, allow_duplicates: bool, }, } -impl Display for TrustedTypes { +impl<'a> Display for TrustedTypes<'a> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::result::Result<(), std::fmt::Error> { match self { Self::None => write!(f, "'none'"),