pub trait MCDatabase:
Send
+ Sync
+ CloneSPDatabase {
Show 49 methods
// Required methods
fn ping<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn register<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 Register<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn delete_user<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn username_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_email<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn email_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
email: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn update_email<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 UpdateEmail<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_password<'life0, 'life1, 'async_trait>(
&'life0 self,
l: &'life1 Login<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn update_password<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 NameHash,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn update_username<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
current: &'life1 str,
new: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_secret<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_secret_from_captcha<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
secret: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
p: &'life2 CreateCaptcha<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
p: &'life2 CreateCaptcha<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
old_key: &'life2 str,
new_key: &'life3 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
levels: &'life3 [Level],
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: Option<&'life1 str>,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: Option<&'life1 str>,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
pattern: &'life3 TrafficPattern,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn get_all_easy_captchas<'life0, 'async_trait>(
&'life0 self,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn create_notification<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 AddNotification<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn mark_notification_read<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
id: i32,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn record_fetch<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn record_solve<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn record_confirm<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn analysis_save<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
d: &'life2 CreatePerformanceAnalytics,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn analytics_fetch<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>(
&'life0 self,
psuedo_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>(
&'life0 self,
campaign_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn analytics_get_all_psuedo_ids<'life0, 'async_trait>(
&'life0 self,
page: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
difficulty_factor: u32,
latest_nonce: u32,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
difficulty_factor: u32,
) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn stats_get_num_logs_under_time<'life0, 'async_trait>(
&'life0 self,
duration: u32,
) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>(
&'life0 self,
duration: u32,
location: u32,
) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided method
fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>(
&'life0 self,
campaign_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
}Expand description
mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.
Required Methods§
Sourcefn ping<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn ping<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
ping DB
Sourcefn register<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 Register<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 Register<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
register a new user
Sourcefn delete_user<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_user<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
delete a user
Sourcefn username_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn username_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
check if username exists
Sourcefn get_email<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_email<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
get user email
Sourcefn email_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
email: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn email_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
email: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
check if email exists
Sourcefn update_email<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 UpdateEmail<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_email<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 UpdateEmail<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
update a user’s email
Sourcefn get_password<'life0, 'life1, 'async_trait>(
&'life0 self,
l: &'life1 Login<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_password<'life0, 'life1, 'async_trait>(
&'life0 self,
l: &'life1 Login<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
get a user’s password
Sourcefn update_password<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 NameHash,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_password<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 NameHash,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
update user’s password
Sourcefn update_username<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
current: &'life1 str,
new: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_username<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
current: &'life1 str,
new: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
update username
Sourcefn get_secret<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_secret<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
get a user’s secret
Sourcefn get_secret_from_captcha<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_secret_from_captcha<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
get a user’s secret from a captcha key
Sourcefn update_secret<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
secret: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
secret: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
update a user’s secret
Sourcefn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
p: &'life2 CreateCaptcha<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
p: &'life2 CreateCaptcha<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
create new captcha
Sourcefn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get captcha config
Sourcefn get_all_user_captchas<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get all captchas belonging to user
Sourcefn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
p: &'life2 CreateCaptcha<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
p: &'life2 CreateCaptcha<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
update captcha metadata; doesn’t change captcha key
Sourcefn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
old_key: &'life2 str,
new_key: &'life3 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
old_key: &'life2 str,
new_key: &'life3 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
update captcha key; doesn’t change metadata
Sourcefn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
levels: &'life3 [Level],
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
levels: &'life3 [Level],
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Add levels to captcha
Sourcefn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: Option<&'life1 str>,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: Option<&'life1 str>,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
check if captcha exists
Sourcefn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Delete all levels of a captcha
Sourcefn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Delete captcha
Sourcefn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: Option<&'life1 str>,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: Option<&'life1 str>,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get captcha levels
Sourcefn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get captcha’s cooldown period
Sourcefn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
pattern: &'life3 TrafficPattern,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
pattern: &'life3 TrafficPattern,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Add traffic configuration
Sourcefn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Get traffic configuration
Sourcefn get_all_easy_captchas<'life0, 'async_trait>(
&'life0 self,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_easy_captchas<'life0, 'async_trait>(
&'life0 self,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<EasyCaptcha>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all easy captcha configurations on instance
Sourcefn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
username: &'life1 str,
captcha_key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Delete traffic configuration
Sourcefn create_notification<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 AddNotification<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_notification<'life0, 'life1, 'async_trait>(
&'life0 self,
p: &'life1 AddNotification<'_>,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
create new notification
Sourcefn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
get all unread notifications
Sourcefn mark_notification_read<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
id: i32,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn mark_notification_read<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str,
id: i32,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
mark a notification read
Sourcefn record_fetch<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn record_fetch<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
record PoWConfig fetches
Sourcefn record_solve<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn record_solve<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
record PoWConfig solves
Sourcefn record_confirm<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn record_confirm<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
record PoWConfig confirms
Sourcefn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fetch PoWConfig fetches
Sourcefn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fetch PoWConfig solves
Sourcefn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
user: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fetch PoWConfig confirms
Sourcefn analysis_save<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
d: &'life2 CreatePerformanceAnalytics,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn analysis_save<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
d: &'life2 CreatePerformanceAnalytics,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
record PoW timing
Sourcefn analytics_fetch<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn analytics_fetch<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
limit: usize,
offset: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<PerformanceAnalytics>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fetch PoW analytics
Sourcefn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn analytics_create_psuedo_id_if_not_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create psuedo ID against campaign ID to publish analytics
Sourcefn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn analytics_get_psuedo_id_from_capmaign_id<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get psuedo ID from campaign ID
Sourcefn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>(
&'life0 self,
psuedo_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn analytics_get_capmaign_id_from_psuedo_id<'life0, 'life1, 'async_trait>(
&'life0 self,
psuedo_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get campaign ID from psuedo ID
Sourcefn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>(
&'life0 self,
campaign_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn analytics_delete_all_records_for_campaign<'life0, 'life1, 'async_trait>(
&'life0 self,
campaign_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Delete all records for campaign
Sourcefn analytics_get_all_psuedo_ids<'life0, 'async_trait>(
&'life0 self,
page: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn analytics_get_all_psuedo_ids<'life0, 'async_trait>(
&'life0 self,
page: usize,
) -> Pin<Box<dyn Future<Output = DBResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get all psuedo IDs
Sourcefn update_max_nonce_for_level<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
difficulty_factor: u32,
latest_nonce: u32,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_max_nonce_for_level<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
difficulty_factor: u32,
latest_nonce: u32,
) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Track maximum nonce received against captcha levels
Sourcefn get_max_nonce_for_level<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
difficulty_factor: u32,
) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_max_nonce_for_level<'life0, 'life1, 'async_trait>(
&'life0 self,
captcha_key: &'life1 str,
difficulty_factor: u32,
) -> Pin<Box<dyn Future<Output = DBResult<u32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get maximum nonce tracked so far for captcha levels
Sourcefn stats_get_num_logs_under_time<'life0, 'async_trait>(
&'life0 self,
duration: u32,
) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stats_get_num_logs_under_time<'life0, 'async_trait>(
&'life0 self,
duration: u32,
) -> Pin<Box<dyn Future<Output = DBResult<usize>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get number of analytics entries that are under a certain duration
Sourcefn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>(
&'life0 self,
duration: u32,
location: u32,
) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stats_get_entry_at_location_for_time_limit_asc<'life0, 'async_trait>(
&'life0 self,
duration: u32,
location: u32,
) -> Pin<Box<dyn Future<Output = DBResult<Option<usize>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get the entry at a location in the list of analytics entires under a certain time limit and sorted in ascending order
Provided Methods§
Sourcefn analytics_captcha_is_published<'life0, 'life1, 'async_trait>(
&'life0 self,
campaign_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn analytics_captcha_is_published<'life0, 'life1, 'async_trait>(
&'life0 self,
campaign_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get publishing status of pow analytics for captcha ID/ campaign ID