pub use sqlx;
use tower_sessions_core::session_store;
#[cfg(feature = "mysql")]
#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
pub use self::mysql_store::MySqlStore;
#[cfg(feature = "postgres")]
#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
pub use self::postgres_store::PostgresStore;
#[cfg(feature = "sqlite")]
#[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
pub use self::sqlite_store::SqliteStore;
#[cfg(feature = "sqlite")]
#[cfg_attr(docsrs, doc(cfg(feature = "sqlite")))]
mod sqlite_store;
#[cfg(feature = "postgres")]
#[cfg_attr(docsrs, doc(cfg(feature = "postgres")))]
mod postgres_store;
#[cfg(feature = "mysql")]
#[cfg_attr(docsrs, doc(cfg(feature = "mysql")))]
mod mysql_store;
#[derive(thiserror::Error, Debug)]
pub enum SqlxStoreError {
#[error(transparent)]
Sqlx(#[from] sqlx::Error),
#[error(transparent)]
Encode(#[from] rmp_serde::encode::Error),
#[error(transparent)]
Decode(#[from] rmp_serde::decode::Error),
}
impl From<SqlxStoreError> for session_store::Error {
fn from(err: SqlxStoreError) -> Self {
match err {
SqlxStoreError::Sqlx(inner) => session_store::Error::Backend(inner.to_string()),
SqlxStoreError::Decode(inner) => session_store::Error::Decode(inner.to_string()),
SqlxStoreError::Encode(inner) => session_store::Error::Encode(inner.to_string()),
}
}
}