Struct XClacksOverhead
pub struct XClacksOverhead(/* private fields */);http only.Expand description
X-Clacks-Overhead header implementation
A non-standardised HTTP header based upon the fictional work of the late, great, Sir Terry Pratchett. The header commemorates influential figures in computing and technology by cycling through a predefined list of names.
Use the XClacksOverhead::new constructor when using it with a response header
adder layer or something similar. This way you get each response a different header.
§Credits
Original implementation inspired by work from Xe. See: https://xclacksoverhead.org/home/about
§Examples
use rama_http_headers::exotic::XClacksOverhead;
// Time-based rotation through commemorated names
let header = XClacksOverhead::new();
// Parse from a string
let header: XClacksOverhead = "GNU Terry Pratchett".parse().unwrap();
// Compile-time constant
let header = XClacksOverhead::from_static("GNU Dennis Ritchie");Implementations§
§impl XClacksOverhead
impl XClacksOverhead
pub fn new() -> XClacksOverhead
pub fn new() -> XClacksOverhead
Construct a new XClacksOverhead header with a name selected based on current epoch time.
The name changes once per day (UTC).
pub const fn from_static(s: &'static str) -> XClacksOverhead
pub const fn from_static(s: &'static str) -> XClacksOverhead
Construct an XClacksOverhead from a static string.
§Panic
Panics if the static string is not a legal header value.
pub fn as_str(&self) -> &str
Trait Implementations§
§impl Clone for XClacksOverhead
impl Clone for XClacksOverhead
§fn clone(&self) -> XClacksOverhead
fn clone(&self) -> XClacksOverhead
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for XClacksOverhead
impl Debug for XClacksOverhead
§impl Default for XClacksOverhead
impl Default for XClacksOverhead
§fn default() -> XClacksOverhead
fn default() -> XClacksOverhead
§impl Display for XClacksOverhead
impl Display for XClacksOverhead
§impl FromStr for XClacksOverhead
impl FromStr for XClacksOverhead
§type Err = InvalidXClacksOverhead
type Err = InvalidXClacksOverhead
§fn from_str(
src: &str,
) -> Result<XClacksOverhead, <XClacksOverhead as FromStr>::Err>
fn from_str( src: &str, ) -> Result<XClacksOverhead, <XClacksOverhead as FromStr>::Err>
s to return a value of this type. Read more§impl Hash for XClacksOverhead
impl Hash for XClacksOverhead
§impl HeaderDecode for XClacksOverhead
impl HeaderDecode for XClacksOverhead
§fn decode<'i, I>(values: &mut I) -> Result<XClacksOverhead, Error>where
I: Iterator<Item = &'i HeaderValue>,
fn decode<'i, I>(values: &mut I) -> Result<XClacksOverhead, Error>where
I: Iterator<Item = &'i HeaderValue>,
HeaderValues.§impl HeaderEncode for XClacksOverhead
impl HeaderEncode for XClacksOverhead
§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 Ord for XClacksOverhead
impl Ord for XClacksOverhead
§impl PartialEq for XClacksOverhead
impl PartialEq for XClacksOverhead
§impl PartialOrd for XClacksOverhead
impl PartialOrd for XClacksOverhead
§impl TypedHeader for XClacksOverhead
impl TypedHeader for XClacksOverhead
§fn name() -> &'static HeaderName
fn name() -> &'static HeaderName
impl Eq for XClacksOverhead
impl StructuralPartialEq for XClacksOverhead
Auto Trait Implementations§
impl !Freeze for XClacksOverhead
impl RefUnwindSafe for XClacksOverhead
impl Send for XClacksOverhead
impl Sync for XClacksOverhead
impl Unpin for XClacksOverhead
impl UnwindSafe for XClacksOverhead
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§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<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> 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> ToSmolStr for T
impl<T> ToSmolStr for T
fn to_smolstr(&self) -> SmolStr
§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.