Actualize storages docs

This commit is contained in:
Sergey Levitin 2020-10-24 21:08:14 +03:00
parent e456e525d8
commit 75c7899f2c
4 changed files with 17 additions and 5 deletions

View file

@ -7,7 +7,7 @@ To change the source code, fork the `dev` branch of this repository and work ins
```
cargo clippy --all --all-features --all-targets
cargo test --all
cargo doc --open
cargo doc --open --all-features
# Using nightly rustfmt
cargo +nightly fmt --all -- --check
```

View file

@ -8,8 +8,11 @@ use tokio::sync::Mutex;
///
/// ## Note
/// All the dialogues will be lost after you restart your bot. If you need to
/// store them somewhere on a drive, you need to implement a storage
/// communicating with a DB.
/// store them somewhere on a drive, should should use [`SqliteStorage`],
/// [`RedisStorage`] or implement your own.
///
/// [`RedisStorage`]: crate::dispatching::dialogue::RedisStorage
/// [`SqliteStorage`]: crate::dispatching::dialogue::SqliteStorage
#[derive(Debug)]
pub struct InMemStorage<D> {
map: Mutex<HashMap<i64, D>>,

View file

@ -24,9 +24,15 @@ pub use sqlite_storage::{SqliteStorage, SqliteStorageError};
/// You can implement this trait for a structure that communicates with a DB and
/// be sure that after you restart your bot, all the dialogues won't be lost.
///
/// For a storage based on a simple hash map, see [`InMemStorage`].
/// Currently we support the following storages out of the box:
///
/// - [`InMemStorage`] - a storage based on a simple hash map
/// - [`RedisStorage`] - a Redis-based storage
/// - [`SqliteStorage`] - an SQLite-based persistent storage
///
/// [`InMemStorage`]: crate::dispatching::dialogue::InMemStorage
/// [`RedisStorage`]: crate::dispatching::dialogue::RedisStorage
/// [`SqliteStorage`]: crate::dispatching::dialogue::SqliteStorage
pub trait Storage<D> {
type Error;

View file

@ -10,7 +10,9 @@ use std::{
};
use thiserror::Error;
// An error returned from [`SqliteStorage`].
/// An error returned from [`SqliteStorage`].
///
/// [`SqliteStorage`]: struct.SqliteStorage.html
#[derive(Debug, Error)]
pub enum SqliteStorageError<SE>
where
@ -22,6 +24,7 @@ where
SqliteError(#[from] sqlx::Error),
}
/// A persistent storage based on [SQLite](https://www.sqlite.org/).
pub struct SqliteStorage<S> {
pool: SqlitePool,
serializer: S,