pub enum SourceExpression {
Show 14 variants
SelfOrigin,
None,
UnsafeInline,
UnsafeEval,
StrictDynamic,
UnsafeHashes,
WasmUnsafeEval,
ReportSample,
InlineSpeculationRules,
Wildcard,
Scheme(Protocol),
Host(HostSource),
Nonce(Cow<'static, str>),
Hash {
algorithm: HashAlgorithm,
value: Cow<'static, str>,
},
}Expand description
One CSP source expression — the building block of a source-list.
Every variant has a canonical wire form defined by
CSP Level 3 § 2.3;
see fmt::Display for the mapping.
Variants§
SelfOrigin
Same-origin sources only.
None
No sources are permitted. Per spec must appear alone in a list.
UnsafeInline
Permit inline <script> / <style> blocks and inline event
handlers — generally a bad idea on a hardened policy.
UnsafeEval
Permit eval and related JS APIs.
StrictDynamic
Trust scripts loaded by a nonced / hashed script, ignoring the rest of the source list.
UnsafeHashes
Permit specific inline event handlers / style attributes via a matching hash source.
WasmUnsafeEval
Permit WebAssembly.instantiate from buffers (not just from
fetched script sources).
ReportSample
Include a sample of the violation in CSP reports.
InlineSpeculationRules
Permit inline <script type="speculationrules"> blocks.
Wildcard
Match any source (*). Equivalent to “no restriction” — only
useful for testing.
Scheme(Protocol)
A whole scheme (e.g. data:, blob:, mediastream:). The
trailing : is emitted by the serialiser.
Host(HostSource)
A host source — scheme/host/port/path combination, see
HostSource.
Nonce(Cow<'static, str>)
'nonce-<base64>' — pairs with nonce="…" on the inline element.
Hash
'<algo>-<base64>' matching an inline script or style.
Fields
algorithm: HashAlgorithmImplementations§
Source§impl SourceExpression
impl SourceExpression
Sourcepub fn scheme(scheme: impl Into<Protocol>) -> SourceExpression
pub fn scheme(scheme: impl Into<Protocol>) -> SourceExpression
Build a SourceExpression::Scheme from a Protocol (or
anything convertible into one).
Sourcepub fn host(host: impl Into<HostSource>) -> SourceExpression
pub fn host(host: impl Into<HostSource>) -> SourceExpression
Build a SourceExpression::Host from anything convertible
into a HostSource (e.g. a Domain or a host-source
string via HostSource::try_parse).
Sourcepub fn nonce(nonce: impl Into<Cow<'static, str>>) -> SourceExpression
pub fn nonce(nonce: impl Into<Cow<'static, str>>) -> SourceExpression
Build a SourceExpression::Nonce.
Sourcepub fn hash(
algorithm: HashAlgorithm,
value: impl Into<Cow<'static, str>>,
) -> SourceExpression
pub fn hash( algorithm: HashAlgorithm, value: impl Into<Cow<'static, str>>, ) -> SourceExpression
Build a SourceExpression::Hash.
Trait Implementations§
Source§impl Clone for SourceExpression
impl Clone for SourceExpression
Source§fn clone(&self) -> SourceExpression
fn clone(&self) -> SourceExpression
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SourceExpression
impl Debug for SourceExpression
Source§impl Display for SourceExpression
impl Display for SourceExpression
impl Eq for SourceExpression
Source§impl From<Domain> for SourceExpression
impl From<Domain> for SourceExpression
Source§fn from(d: Domain) -> SourceExpression
fn from(d: Domain) -> SourceExpression
Source§impl From<HostSource> for SourceExpression
impl From<HostSource> for SourceExpression
Source§fn from(h: HostSource) -> SourceExpression
fn from(h: HostSource) -> SourceExpression
Source§impl From<Protocol> for SourceExpression
impl From<Protocol> for SourceExpression
Source§fn from(p: Protocol) -> SourceExpression
fn from(p: Protocol) -> SourceExpression
Source§impl From<SourceExpression> for SourceList
impl From<SourceExpression> for SourceList
Source§fn from(expr: SourceExpression) -> SourceList
fn from(expr: SourceExpression) -> SourceList
Source§impl FromStr for SourceExpression
impl FromStr for SourceExpression
Source§impl Hash for SourceExpression
impl Hash for SourceExpression
Source§impl PartialEq for SourceExpression
impl PartialEq for SourceExpression
Source§fn eq(&self, other: &SourceExpression) -> bool
fn eq(&self, other: &SourceExpression) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for SourceExpression
Auto Trait Implementations§
impl !Freeze for SourceExpression
impl RefUnwindSafe for SourceExpression
impl Send for SourceExpression
impl Sync for SourceExpression
impl Unpin for SourceExpression
impl UnsafeUnpin for SourceExpression
impl UnwindSafe for SourceExpression
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
Source§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.