Struct amnesia::Cache

source ·
pub struct Cache<D: Driver> { /* private fields */ }
Expand description

Unified cache interface.

Implementations§

source§

impl<D: Driver> Cache<D>

source

pub async fn new(config: D::Config) -> Result<Self, D::Error>

Create a new instance of the cache.

Errors

Returns an error if the driver fails to initialize.

source

pub async fn get<T: DeserializeOwned>( &self, key: &str ) -> Result<Option<T>, D::Error>

Retrieve an item from the cache.

Errors

Returns an error if the driver fails to retrieve the item.

source

pub async fn has(&self, key: &str) -> Result<bool, D::Error>

Check if an item exists in the cache.

Errors

Returns an error if the driver fails to check if the item exists.

source

pub async fn remember<T: Serialize + DeserializeOwned + Send + Sync>( &mut self, key: &str, duration: Duration, value: T ) -> Result<T, D::Error>

Retrieve an item from the cache, or store it for some time if it doesn’t exist yet.

Errors

Returns an error if the driver fails to retrieve or store the item.

source

pub async fn remember_forever<T: Serialize + DeserializeOwned + Send + Sync>( &mut self, key: &str, value: T ) -> Result<T, D::Error>

Retrieve an item from the cache, or store it forever if it doesn’t exist yet.

Errors

Returns an error if the driver fails to retrieve or store the item.

source

pub async fn pull<T: DeserializeOwned + Send>( &mut self, key: &str ) -> Result<Option<T>, D::Error>

Remove an item from the cache and return it.

Errors

Returns an error if the driver fails to retrieve or remove the item.

source

pub async fn put<T: Serialize + Sync>( &mut self, key: &str, value: &T, expiry: Duration ) -> Result<(), D::Error>

Store an item in the cache for a given duration.

Errors

Returns an error if the driver fails to store the item.

source

pub async fn add<T: Serialize + Send + Sync>( &mut self, key: &str, value: T, expiry: Duration ) -> Result<bool, D::Error>

Store an item in the cache if it doesn’t exist yet.

Errors

Returns an error if the driver fails to store the item.

source

pub async fn forever<T: Serialize + Send + Sync>( &mut self, key: &str, value: T ) -> Result<(), D::Error>

Store an item in the cache indefinitely.

Errors

Returns an error if the driver fails to store the item.

source

pub async fn forget(&mut self, key: &str) -> Result<(), D::Error>

Remove an item from the cache.

Errors

Returns an error if the driver fails to remove the item.

source

pub async fn flush(&mut self) -> Result<(), D::Error>

Remove all items from the cache.

Errors

Returns an error if the driver fails to flush the cache.

Auto Trait Implementations§

§

impl<D> RefUnwindSafe for Cache<D>
where D: RefUnwindSafe,

§

impl<D> Send for Cache<D>

§

impl<D> Sync for Cache<D>

§

impl<D> Unpin for Cache<D>
where D: Unpin,

§

impl<D> UnwindSafe for Cache<D>
where D: UnwindSafe,

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.

§

impl<T> Instrument for T

§

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

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

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<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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