Skip to main content

MemoryStore

Struct MemoryStore 

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

A resource store backed by an ordered list of items.

Items keep the order they were created in, which is the order the collection lists them in when no sort is asked for.

Implementations§

Source§

impl MemoryStore

Source

pub fn new() -> Self

An empty store whose identifier field is id.

Source

pub fn with_id_field<S: Into<String>>(id_field: S) -> Self

An empty store whose identifier field has another name.

Source

pub fn seeded<I: IntoIterator<Item = LinoValue>>(items: I) -> Self

A store seeded with items.

§Examples
use lino_rest_api::store::MemoryStore;
use lino_rest_api::value::{get, int, object, string};

let store = MemoryStore::seeded([object([("title", string("Ship it"))])]);
assert_eq!(get(&store.read("1").unwrap(), "id"), Some(&int(1)));
Source

pub fn insert(&self, body: &LinoValue) -> LinoValue

Create an item without awaiting, for seeding and for tests.

Source

pub fn read(&self, identifier: &str) -> Option<LinoValue>

Read an item without awaiting, for tests.

Source

pub fn items(&self) -> Vec<LinoValue>

Every item, in creation order.

Source

pub fn len(&self) -> usize

How many items the store holds.

Source

pub fn is_empty(&self) -> bool

Whether the store holds no item.

Source

pub fn clear(&self)

Remove every item and restart the identifier sequence.

Trait Implementations§

Source§

impl Debug for MemoryStore

Source§

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

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

impl Default for MemoryStore

Source§

fn default() -> Self

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

impl Store for MemoryStore

Source§

fn id_field(&self) -> &str

The field of an item that holds its identifier.
Source§

fn list<'life0, 'life1, 'async_trait>( &'life0 self, query: &'life1 CollectionQuery, ) -> Pin<Box<dyn Future<Output = Result<LinoValue, LinoHttpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Run a collection query, returning a collection envelope.
Source§

fn get<'life0, 'life1, 'async_trait>( &'life0 self, identifier: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<LinoValue>, LinoHttpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Read one item, or None when it does not exist.
Source§

fn create<'life0, 'life1, 'async_trait>( &'life0 self, body: &'life1 LinoValue, ) -> Pin<Box<dyn Future<Output = Result<LinoValue, LinoHttpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Create an item, assigning an identifier when the body carries none.
Source§

fn update<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, identifier: &'life1 str, body: &'life2 LinoValue, ) -> Pin<Box<dyn Future<Output = Result<Option<LinoValue>, LinoHttpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Replace an item, or None when it does not exist.
Source§

fn patch<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, identifier: &'life1 str, body: &'life2 LinoValue, ) -> Pin<Box<dyn Future<Output = Result<Option<LinoValue>, LinoHttpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Merge changes into an item, or None when it does not exist.
Source§

fn remove<'life0, 'life1, 'async_trait>( &'life0 self, identifier: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool, LinoHttpError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Delete an item, reporting whether one was deleted.

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

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