Trait atuin_server_database::Database

source ·
pub trait Database: Sized + Clone + Send + Sync + 'static {
    type Settings: Debug + Clone + DeserializeOwned + Serialize + Send + Sync + 'static;

Show 23 methods // Required methods fn new<'life0, 'async_trait>( settings: &'life0 Self::Settings, ) -> Pin<Box<dyn Future<Output = DbResult<Self>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_session<'life0, 'life1, 'async_trait>( &'life0 self, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = DbResult<Session>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_session_user<'life0, 'life1, 'async_trait>( &'life0 self, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = DbResult<User>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn add_session<'life0, 'life1, 'async_trait>( &'life0 self, session: &'life1 NewSession, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_user<'life0, 'life1, 'async_trait>( &'life0 self, username: &'life1 str, ) -> Pin<Box<dyn Future<Output = DbResult<User>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_user_session<'life0, 'life1, 'async_trait>( &'life0 self, u: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<Session>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn add_user<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 NewUser, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn update_user_password<'life0, 'life1, 'async_trait>( &'life0 self, u: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn total_history<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn count_history_cached<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, u: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn delete_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, id: String, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn deleted_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<Vec<String>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn delete_store<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn add_records<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, user: &'life1 User, record: &'life2 [Record<EncryptedData>], ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn next_records<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, host: HostId, tag: String, start: Option<RecordIdx>, count: u64, ) -> Pin<Box<dyn Future<Output = DbResult<Vec<Record<EncryptedData>>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn status<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<RecordStatus>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn count_history_range<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, range: Range<OffsetDateTime>, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn list_history<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, user: &'life1 User, created_after: OffsetDateTime, since: OffsetDateTime, host: &'life2 str, page_size: i64, ) -> Pin<Box<dyn Future<Output = DbResult<Vec<History>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn add_history<'life0, 'life1, 'async_trait>( &'life0 self, history: &'life1 [NewHistory], ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn oldest_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<History>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; // Provided method fn calendar<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, period: TimePeriod, tz: UtcOffset, ) -> Pin<Box<dyn Future<Output = DbResult<HashMap<u64, TimePeriodInfo>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... }
}

Required Associated Types§

Required Methods§

source

fn new<'life0, 'async_trait>( settings: &'life0 Self::Settings, ) -> Pin<Box<dyn Future<Output = DbResult<Self>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn get_session<'life0, 'life1, 'async_trait>( &'life0 self, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = DbResult<Session>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn get_session_user<'life0, 'life1, 'async_trait>( &'life0 self, token: &'life1 str, ) -> Pin<Box<dyn Future<Output = DbResult<User>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn add_session<'life0, 'life1, 'async_trait>( &'life0 self, session: &'life1 NewSession, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn get_user<'life0, 'life1, 'async_trait>( &'life0 self, username: &'life1 str, ) -> Pin<Box<dyn Future<Output = DbResult<User>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn get_user_session<'life0, 'life1, 'async_trait>( &'life0 self, u: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<Session>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn add_user<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 NewUser, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn update_user_password<'life0, 'life1, 'async_trait>( &'life0 self, u: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn total_history<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

source

fn count_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn count_history_cached<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn delete_user<'life0, 'life1, 'async_trait>( &'life0 self, u: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn delete_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, id: String, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn deleted_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn delete_store<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn add_records<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, user: &'life1 User, record: &'life2 [Record<EncryptedData>], ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

source

fn next_records<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, host: HostId, tag: String, start: Option<RecordIdx>, count: u64, ) -> Pin<Box<dyn Future<Output = DbResult<Vec<Record<EncryptedData>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn status<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<RecordStatus>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn count_history_range<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, range: Range<OffsetDateTime>, ) -> Pin<Box<dyn Future<Output = DbResult<i64>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn list_history<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, user: &'life1 User, created_after: OffsetDateTime, since: OffsetDateTime, host: &'life2 str, page_size: i64, ) -> Pin<Box<dyn Future<Output = DbResult<Vec<History>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

source

fn add_history<'life0, 'life1, 'async_trait>( &'life0 self, history: &'life1 [NewHistory], ) -> Pin<Box<dyn Future<Output = DbResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

source

fn oldest_history<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, ) -> Pin<Box<dyn Future<Output = DbResult<History>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Provided Methods§

source

fn calendar<'life0, 'life1, 'async_trait>( &'life0 self, user: &'life1 User, period: TimePeriod, tz: UtcOffset, ) -> Pin<Box<dyn Future<Output = DbResult<HashMap<u64, TimePeriodInfo>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Object Safety§

This trait is not object safe.

Implementors§