Enum rocket_cors::AllOrSome
source · pub enum AllOrSome<T> {
All,
Some(T),
}
Expand description
An enum signifying that some of type T is allowed, or All
(everything is allowed).
Default
is implemented for this enum and is All
.
This enum is serialized and deserialized “Externally tagged”
Variants§
Implementations§
source§impl AllOrSome<Origins>
impl AllOrSome<Origins>
sourcepub fn some<'a, 'b, S1: AsRef<str>, S2: AsRef<str>>(
exact: &'a [S1],
regex: &'b [S2]
) -> Self
pub fn some<'a, 'b, S1: AsRef<str>, S2: AsRef<str>>( exact: &'a [S1], regex: &'b [S2] ) -> Self
Allows some origins, with a mix of exact matches or regex matches
Validation is not performed at this stage, but at a later stage.
Exact matches are matched exactly with the ASCII Serialization of the origin.
Regular expressions are tested for matches against the ASCII Serialization of the origin.
Opaque Origins
The specification defines an Opaque Origin
as one that cannot be recreated. You can refer to the source code for the url::Url::origin
method to see how an Opaque Origin is determined. Examples of Opaque origins might include
schemes like file://
or Browser specific schemes like "moz-extension://
or
chrome-extension://
.
Opaque Origins cannot be matched exactly. You must use Regex to match Opaque Origins. If you
attempt to create Cors
from CorsOptions
, you will get an error.
Warning about Regex expressions
By default, regex expressions are unanchored.
This means that if the regex does not start with ^
or \A
, or end with $
or \z
,
then it is permitted to match anywhere in the text. You are encouraged to use the anchors when
crafting your Regex expressions.
sourcepub fn some_exact<S: AsRef<str>>(exact: &[S]) -> Self
pub fn some_exact<S: AsRef<str>>(exact: &[S]) -> Self
Allows some exact origins
Validation is not performed at this stage, but at a later stage.
Exact matches are matched exactly with the ASCII Serialization of the origin.
Opaque Origins
The specification defines an Opaque Origin
as one that cannot be recreated. You can refer to the source code for the url::Url::origin
method to see how an Opaque Origin is determined. Examples of Opaque origins might include
schemes like file://
or Browser specific schemes like "moz-extension://
or
chrome-extension://
.
sourcepub fn some_regex<S: AsRef<str>>(regex: &[S]) -> Self
pub fn some_regex<S: AsRef<str>>(regex: &[S]) -> Self
Allow some regular expression origins
Validation is not performed at this stage, but at a later stage.
Regular expressions are tested for matches against the ASCII Serialization of the origin.
Warning about Regex expressions
By default, regex expressions are unanchored.
This means that if the regex does not start with ^
or \A
, or end with $
or \z
,
then it is permitted to match anywhere in the text. You are encouraged to use the anchors when
crafting your Regex expressions.
Trait Implementations§
source§impl<'de, T> Deserialize<'de> for AllOrSome<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for AllOrSome<T>where T: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl<T: PartialEq> PartialEq for AllOrSome<T>
impl<T: PartialEq> PartialEq for AllOrSome<T>
impl<T: Eq> Eq for AllOrSome<T>
impl<T> StructuralEq for AllOrSome<T>
impl<T> StructuralPartialEq for AllOrSome<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for AllOrSome<T>where T: RefUnwindSafe,
impl<T> Send for AllOrSome<T>where T: Send,
impl<T> Sync for AllOrSome<T>where T: Sync,
impl<T> Unpin for AllOrSome<T>where T: Unpin,
impl<T> UnwindSafe for AllOrSome<T>where T: UnwindSafe,
Blanket Implementations§
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<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§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>
§impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
§fn into_collection<A>(self) -> SmallVec<A>where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A>where A: Array<Item = T>,
self
into a collection.fn mapped<U, F, A>(self, f: F) -> SmallVec<A>where F: FnMut(T) -> U, A: Array<Item = U>,
§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute
] value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
[Quirk
] value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition
] value
applies. Replaces any previous condition.
See the crate level docs for more details.
Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);