pub struct FileValueStorage<V> { /* private fields */ }
Expand description

File Storage There three files involved

  • the actual file storing data

  • a temporary file used to avoid losing data during writes. The whole data file is copied to the temporary file then the temporary file is renamed

  • a lock file. It’s used to control inter-process accesses to the data. Before reading or writing to the data fil, a shared or exclusive lock is first acquired on this file. We don’t lock over the data file directly, because doesn’t play well with the file rename we do

Implementations§

source§

impl<V: Default + Serialize + for<'de> Deserialize<'de>> FileValueStorage<V>

source

pub async fn create(path: &Path) -> Result<Self>

Create and init the file storage

Trait Implementations§

source§

impl<V: Clone> Clone for FileValueStorage<V>

source§

fn clone(&self) -> FileValueStorage<V>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<V: Default + for<'a> Deserialize<'a> + Serialize + Send + Sync + 'static> ValueStorage<V> for FileValueStorage<V>

source§

fn update_value<'life0, 'async_trait>( &'life0 self, f: impl 'async_trait + Fn(V) -> Result<V> + Send + Sync + 'static ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,

Update the currently stored value
source§

fn modify_value<'life0, 'async_trait, R>( &'life0 self, f: impl 'async_trait + Fn(V) -> Result<(V, R)> + Send + Sync + 'static ) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>where R: 'async_trait + Send + Sync + 'static, Self: 'async_trait, 'life0: 'async_trait,

Update the currently stored value and return a result R
source§

fn read_value<'life0, 'async_trait, R>( &'life0 self, f: impl 'async_trait + Fn(V) -> Result<R> + Send + Sync + 'static ) -> Pin<Box<dyn Future<Output = Result<R>> + Send + 'async_trait>>where R: 'async_trait + Send + Sync + 'static, Self: 'async_trait, 'life0: 'async_trait,

Read the currently stored value and either return the full value or a subset of it, as R

Auto Trait Implementations§

§

impl<V> RefUnwindSafe for FileValueStorage<V>where V: RefUnwindSafe,

§

impl<V> Send for FileValueStorage<V>where V: Send,

§

impl<V> Sync for FileValueStorage<V>where V: Sync,

§

impl<V> Unpin for FileValueStorage<V>where V: Unpin,

§

impl<V> UnwindSafe for FileValueStorage<V>where V: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<D> AsyncTryClone for Dwhere D: Clone + Sync,

source§

fn async_try_clone<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<D, Error>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, D: 'async_trait,

Try cloning a object and return an Err in case of failure.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere 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 Twhere 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 Twhere V: MultiLane<T>,

§

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