Struct hitbox_actix::builder::CacheBuilder[][src]

pub struct CacheBuilder<B> where
    B: Backend + Actor
{ /* fields omitted */ }
Expand description

Cache actor configurator.

Example

use actix::prelude::*;
use hitbox_actix::{Cache, RedisBackend, CacheError};

#[actix_rt::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let backend = RedisBackend::new()
        .await?
        .start();
    let cache = Cache::builder()
        .enable()
        .finish(backend)
        .start();
    Ok(())
}

Implementations

impl<B> CacheBuilder<B> where
    B: Backend
[src]

pub fn enable(self) -> Self[src]

Enable interaction with cache backend. (Default value).

pub fn disable(self) -> Self[src]

Disable interaction with cache backend.

All messages sent to disabled Cache actor passed directly to an upstream actor.

pub fn with_stale(self) -> Self[src]

Enable stale cache mechanics. (Default value).

If CacheActor receives a stale value, it does not return it immediately. It polls data from upstream, and if the upstream returned an error, the CacheActor returns a stale value. If no error occurred in the upstream, then a fresh value is stored in the cache and returned.

pub fn without_stale(self) -> Self[src]

Disable stale cache mechanics.

pub fn with_lock(self) -> Self[src]

Enable cache lock mechanics.

Prevents multiple upstream requests for the same cache key in case of cache data is missing. Only the first request will produce an upstream request. The remaining requests wait for a first upstream response and return updated data. If with_stale is enabled the remaining requests don’t wait for an upstream response and return stale cache data if it exists.

pub fn without_lock(self) -> Self[src]

Disable cache lock mechanics. (Default value).

pub fn finish(self, backend: Addr<B>) -> CacheActor<B>[src]

Instantiate new Cache instance with current configuration and passed backend.

Backend is an Addr of actix Actor which implements Backend trait:

Trait Implementations

impl<B> Default for CacheBuilder<B> where
    B: Backend
[src]

fn default() -> Self[src]

Returns the “default value” for a type. Read more

Auto Trait Implementations

impl<B> RefUnwindSafe for CacheBuilder<B> where
    B: RefUnwindSafe

impl<B> Send for CacheBuilder<B> where
    B: Send

impl<B> Sync for CacheBuilder<B> where
    B: Sync

impl<B> Unpin for CacheBuilder<B>

impl<B> UnwindSafe for CacheBuilder<B> where
    B: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

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

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

fn in_current_span(self) -> Instrumented<Self>[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

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

pub fn vzip(self) -> V