Struct CrossOriginEmbedderPolicy
pub struct CrossOriginEmbedderPolicy {
pub value: CrossOriginEmbedderPolicyValue,
pub report_to: Option<Cow<'static, str>>,
}http only.Expand description
Cross-Origin-Embedder-Policy (COEP) header.
Send require-corp or credentialless to opt the document into
process isolation suitable for using SharedArrayBuffer and other
cross-origin-isolated capabilities.
The optional report-to parameter names a Reporting API endpoint
(defined in the Reporting-Endpoints header) where the browser
posts violation reports.
§Default semantics
When the header is absent the user agent applies unsafe-none
(effectively: no embedder-policy enforcement). The
UnsafeNone variant
represents the header being present with that explicit value —
both produce the same browser behaviour but the presence is
distinguishable on the wire.
§Example
use rama_http_headers::{CrossOriginEmbedderPolicy, CrossOriginEmbedderPolicyValue};
let coep = CrossOriginEmbedderPolicy {
value: CrossOriginEmbedderPolicyValue::RequireCorp,
report_to: Some("coep-endpoint".into()),
};
assert_eq!(coep.to_string(), r#"require-corp; report-to="coep-endpoint""#);Fields§
§value: CrossOriginEmbedderPolicyValue§report_to: Option<Cow<'static, str>>; report-to="<endpoint>" — endpoint name defined in the
Reporting-Endpoints header. Always emitted as a quoted
sf-string per RFC 8941.
Implementations§
§impl CrossOriginEmbedderPolicy
impl CrossOriginEmbedderPolicy
pub fn unsafe_none() -> CrossOriginEmbedderPolicy
pub fn unsafe_none() -> CrossOriginEmbedderPolicy
Builder shortcut: unsafe-none, no report-to.
pub fn require_corp() -> CrossOriginEmbedderPolicy
pub fn require_corp() -> CrossOriginEmbedderPolicy
Builder shortcut: require-corp, no report-to.
pub fn credentialless() -> CrossOriginEmbedderPolicy
pub fn credentialless() -> CrossOriginEmbedderPolicy
Builder shortcut: credentialless, no report-to.
pub fn with_report_to( self, endpoint: impl Into<Cow<'static, str>>, ) -> CrossOriginEmbedderPolicy
pub fn set_report_to( &mut self, endpoint: impl Into<Cow<'static, str>>, ) -> &mut CrossOriginEmbedderPolicy
Trait Implementations§
§impl Clone for CrossOriginEmbedderPolicy
impl Clone for CrossOriginEmbedderPolicy
§fn clone(&self) -> CrossOriginEmbedderPolicy
fn clone(&self) -> CrossOriginEmbedderPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for CrossOriginEmbedderPolicy
impl Debug for CrossOriginEmbedderPolicy
§impl Display for CrossOriginEmbedderPolicy
impl Display for CrossOriginEmbedderPolicy
impl Eq for CrossOriginEmbedderPolicy
§impl Hash for CrossOriginEmbedderPolicy
impl Hash for CrossOriginEmbedderPolicy
§impl HeaderDecode for CrossOriginEmbedderPolicy
impl HeaderDecode for CrossOriginEmbedderPolicy
§fn decode<'i, I>(values: &mut I) -> Result<CrossOriginEmbedderPolicy, Error>where
I: Iterator<Item = &'i HeaderValue>,
fn decode<'i, I>(values: &mut I) -> Result<CrossOriginEmbedderPolicy, Error>where
I: Iterator<Item = &'i HeaderValue>,
HeaderValues.§impl HeaderEncode for CrossOriginEmbedderPolicy
impl HeaderEncode for CrossOriginEmbedderPolicy
§fn encode<E>(&self, values: &mut E)where
E: Extend<HeaderValue>,
fn encode<E>(&self, values: &mut E)where
E: Extend<HeaderValue>,
HeaderValue, and add it to a container
which has HeaderValue type as each element. Read more§fn encode_to_value(&self) -> Option<HeaderValue>
fn encode_to_value(&self) -> Option<HeaderValue>
HeaderValue. Read more§impl PartialEq for CrossOriginEmbedderPolicy
impl PartialEq for CrossOriginEmbedderPolicy
§fn eq(&self, other: &CrossOriginEmbedderPolicy) -> bool
fn eq(&self, other: &CrossOriginEmbedderPolicy) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for CrossOriginEmbedderPolicy
§impl TypedHeader for CrossOriginEmbedderPolicy
impl TypedHeader for CrossOriginEmbedderPolicy
§fn name() -> &'static HeaderName
fn name() -> &'static HeaderName
Auto Trait Implementations§
impl Freeze for CrossOriginEmbedderPolicy
impl RefUnwindSafe for CrossOriginEmbedderPolicy
impl Send for CrossOriginEmbedderPolicy
impl Sync for CrossOriginEmbedderPolicy
impl Unpin for CrossOriginEmbedderPolicy
impl UnsafeUnpin for CrossOriginEmbedderPolicy
impl UnwindSafe for CrossOriginEmbedderPolicy
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§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,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer