DashMapStore

Struct DashMapStore 

Source
pub struct DashMapStore { /* private fields */ }
Expand description

A simple implementation of Store based on DashMap

This provider doesn’t support key expiration thus Storage will return errors when trying to use methods that require expiration functionality if there is no expiry provided.

§Example

use actix_storage::Storage;
use actix_storage_dashmap::DashMapStore;
use actix_web::{App, HttpServer};

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    let storage = Storage::build().store(DashMapStore::new()).finish();
    let server = HttpServer::new(move || {
        App::new()
            .data(storage.clone())
    });
    server.bind("localhost:5000")?.run().await
}

Implementations§

Source§

impl DashMapStore

Source

pub fn new() -> Self

Make a new store, with default capacity of 0

Source

pub fn with_capacity(capacity: usize) -> Self

Make a new store, with specified capacity

Source

pub fn from_dashmap( map: DashMap<Arc<[u8]>, DashMap<Arc<[u8]>, Arc<[u8]>>>, ) -> Self

Make a new store from a hashmap

Trait Implementations§

Source§

impl Debug for DashMapStore

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DashMapStore

Source§

fn default() -> DashMapStore

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

impl Store for DashMapStore

Source§

fn set<'life0, 'async_trait>( &'life0 self, scope: Arc<[u8]>, key: Arc<[u8]>, value: Arc<[u8]>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Set a key-value pair, if the key already exist, value should be overwritten
Source§

fn get<'life0, 'async_trait>( &'life0 self, scope: Arc<[u8]>, key: Arc<[u8]>, ) -> Pin<Box<dyn Future<Output = Result<Option<Arc<[u8]>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get a value for specified key, it should result in None if the value does not exist
Source§

fn delete<'life0, 'async_trait>( &'life0 self, scope: Arc<[u8]>, key: Arc<[u8]>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Delete the key from storage, if the key doesn’t exist, it shouldn’t return an error
Source§

fn contains_key<'life0, 'async_trait>( &'life0 self, scope: Arc<[u8]>, key: Arc<[u8]>, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Check if key exist in storage

Auto Trait Implementations§

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

Source§

type Output = T

Should always be Self
Source§

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

Source§

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>,

Source§

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,