mirror of
https://github.com/teloxide/teloxide.git
synced 2024-12-22 22:46:39 +01:00
Actualize storages docs
This commit is contained in:
parent
e456e525d8
commit
75c7899f2c
4 changed files with 17 additions and 5 deletions
|
@ -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 clippy --all --all-features --all-targets
|
||||||
cargo test --all
|
cargo test --all
|
||||||
cargo doc --open
|
cargo doc --open --all-features
|
||||||
# Using nightly rustfmt
|
# Using nightly rustfmt
|
||||||
cargo +nightly fmt --all -- --check
|
cargo +nightly fmt --all -- --check
|
||||||
```
|
```
|
||||||
|
|
|
@ -8,8 +8,11 @@ use tokio::sync::Mutex;
|
||||||
///
|
///
|
||||||
/// ## Note
|
/// ## Note
|
||||||
/// All the dialogues will be lost after you restart your bot. If you need to
|
/// 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
|
/// store them somewhere on a drive, should should use [`SqliteStorage`],
|
||||||
/// communicating with a DB.
|
/// [`RedisStorage`] or implement your own.
|
||||||
|
///
|
||||||
|
/// [`RedisStorage`]: crate::dispatching::dialogue::RedisStorage
|
||||||
|
/// [`SqliteStorage`]: crate::dispatching::dialogue::SqliteStorage
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct InMemStorage<D> {
|
pub struct InMemStorage<D> {
|
||||||
map: Mutex<HashMap<i64, D>>,
|
map: Mutex<HashMap<i64, D>>,
|
||||||
|
|
|
@ -24,9 +24,15 @@ pub use sqlite_storage::{SqliteStorage, SqliteStorageError};
|
||||||
/// You can implement this trait for a structure that communicates with a DB and
|
/// 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.
|
/// 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
|
/// [`InMemStorage`]: crate::dispatching::dialogue::InMemStorage
|
||||||
|
/// [`RedisStorage`]: crate::dispatching::dialogue::RedisStorage
|
||||||
|
/// [`SqliteStorage`]: crate::dispatching::dialogue::SqliteStorage
|
||||||
pub trait Storage<D> {
|
pub trait Storage<D> {
|
||||||
type Error;
|
type Error;
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,9 @@ use std::{
|
||||||
};
|
};
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
// An error returned from [`SqliteStorage`].
|
/// An error returned from [`SqliteStorage`].
|
||||||
|
///
|
||||||
|
/// [`SqliteStorage`]: struct.SqliteStorage.html
|
||||||
#[derive(Debug, Error)]
|
#[derive(Debug, Error)]
|
||||||
pub enum SqliteStorageError<SE>
|
pub enum SqliteStorageError<SE>
|
||||||
where
|
where
|
||||||
|
@ -22,6 +24,7 @@ where
|
||||||
SqliteError(#[from] sqlx::Error),
|
SqliteError(#[from] sqlx::Error),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A persistent storage based on [SQLite](https://www.sqlite.org/).
|
||||||
pub struct SqliteStorage<S> {
|
pub struct SqliteStorage<S> {
|
||||||
pool: SqlitePool,
|
pool: SqlitePool,
|
||||||
serializer: S,
|
serializer: S,
|
||||||
|
|
Loading…
Reference in a new issue