Skip to main content

Mem

Struct Mem 

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

An in-memory ObjectStore. Generations increase monotonically across the whole store, like GCS.

Implementations§

Source§

impl Mem

Source

pub fn with_max_inflated(self, limit: u64) -> Self

Refuse to decode an encoded object past limit bytes (Error::TooLarge); the default is MAX_INFLATED_BYTES.

Source

pub fn inject(&self, fault: Fault)

Queue a fault for a future operation (consumed in order, one per call).

Source

pub fn inject_after(&self, skip: u64, fault: Fault)

Let skip operations through, then apply fault — for crash tests that fail each step of a multi-operation protocol in turn.

Source

pub fn clear_faults(&self)

Drop every queued fault.

Source

pub fn ops(&self) -> u64

Operations served so far (every call, failed or not).

Source

pub fn keys(&self) -> Vec<String>

Every key, sorted.

Trait Implementations§

Source§

impl Debug for Mem

Source§

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

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

impl Default for Mem

Source§

fn default() -> Self

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

impl ObjectStore for Mem

Source§

type Get<'a> = Ready<Result<Option<Object>, Error>>

Future of get.
Source§

type GetRange<'a> = Ready<Result<Bytes, Error>>

Future of get_range.
Source§

type Head<'a> = Ready<Result<Option<Meta>, Error>>

Future of head.
Source§

type Put<'a> = Ready<Result<u64, Error>>

Future of put.
Source§

type List<'a> = Ready<Result<Vec<Meta>, Error>>

Future of list.
Source§

type Delete<'a> = Ready<Result<(), Error>>

Future of delete.
Source§

fn get<'a>(&'a self, key: &'a str) -> Self::Get<'a>

The whole object, or None if it does not exist.
Source§

fn get_range<'a>( &'a self, key: &'a str, range: Range<u64>, ) -> Self::GetRange<'a>

Bytes range of the object. A range running past the end is clipped; a range starting at or past the end is an empty body. A missing object is Error::NotFound.
Source§

fn head<'a>(&'a self, key: &'a str) -> Self::Head<'a>

Size and generation, without the body.
Source§

fn put<'a>(&'a self, key: &'a str, body: Bytes, cond: Cond) -> Self::Put<'a>

Write body under key if cond holds; returns the new generation.
Source§

fn list<'a>(&'a self, prefix: &'a str) -> Self::List<'a>

Every object whose key starts with prefix, sorted by key. An empty prefix lists everything; a non-empty prefix is validated like a key (a trailing / is allowed).
Source§

fn delete<'a>(&'a self, key: &'a str) -> Self::Delete<'a>

Remove the object. Deleting a missing key succeeds.
Source§

fn put_encoded<'a>( &'a self, key: &'a str, body: Bytes, cond: Cond, encoding: ContentEncoding, ) -> impl Future<Output = Result<u64>> + 'a

Like put, storing body compressed with encoding and recording the encoding, so get returns body again and get_range refuses with Error::EncodedRange. Conditions behave exactly as for put. Read more
Source§

fn stat<'a>( &'a self, key: &'a str, ) -> impl Future<Output = Result<Option<Stat>>> + 'a

head plus the content encoding. The default reports none, which is exact for a store that cannot record one.
Source§

fn list_stat<'a>( &'a self, prefix: &'a str, ) -> impl Future<Output = Result<Vec<Stat>>> + 'a

list plus each object’s content encoding. The default reports none, which is exact for a store that cannot record one.

Auto Trait Implementations§

§

impl !Freeze for Mem

§

impl RefUnwindSafe for Mem

§

impl Send for Mem

§

impl Sync for Mem

§

impl Unpin for Mem

§

impl UnsafeUnpin for Mem

§

impl UnwindSafe for Mem

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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