Struct pingora_cache::VarianceBuilder

source ·
pub struct VarianceBuilder<'a> { /* private fields */ }
Expand description

A builder for variance keys, used for distinguishing multiple cached assets at the same URL. This is intended to be easily passed to helper functions, which can each populate a portion of the variance.

Implementations§

source§

impl<'a> VarianceBuilder<'a>

source

pub fn new() -> Self

Create an empty variance key. Has no variance by default - add some variance using Self::add_value.

source

pub fn add_value( &mut self, name: &'a str, value: &'a (impl AsRef<[u8]> + ?Sized) )

Add a byte string to the variance key. Not sensitive to insertion order. value is intended to take either &str or &[u8].

source

pub fn add_owned_value(&mut self, name: &'a str, value: Vec<u8>)

Move a byte string to the variance key. Not sensitive to insertion order. Useful when writing helper functions which generate a value then add said value to the VarianceBuilder. Without this, the helper function would have to move the value to the calling function to extend its lifetime to at least match the VarianceBuilder.

source

pub fn has_variance(&self) -> bool

Check whether this variance key actually has variance, or just refers to the root asset

source

pub fn finalize(self) -> Option<HashBinary>

Hash this variance key. Returns None if Self::has_variance is false.

Auto Trait Implementations§

§

impl<'a> Freeze for VarianceBuilder<'a>

§

impl<'a> RefUnwindSafe for VarianceBuilder<'a>

§

impl<'a> Send for VarianceBuilder<'a>

§

impl<'a> Sync for VarianceBuilder<'a>

§

impl<'a> Unpin for VarianceBuilder<'a>

§

impl<'a> UnwindSafe for VarianceBuilder<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more