Struct torrust_index_backend::databases::sqlite::Sqlite
source · pub struct Sqlite {
pub pool: SqlitePool,
}
Fields§
§pool: SqlitePool
Trait Implementations§
source§impl Database for Sqlite
impl Database for Sqlite
source§fn get_database_driver(&self) -> Driver
fn get_database_driver(&self) -> Driver
Return current database driver.
fn new<'life0, 'async_trait>( database_url: &'life0 str ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
source§fn insert_user_and_get_id<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
username: &'life1 str,
email: &'life2 str,
password_hash: &'life3 str
) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn insert_user_and_get_id<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, username: &'life1 str, email: &'life2 str, password_hash: &'life3 str ) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Add new user and return the newly inserted
user_id
.source§fn get_user_from_id<'life0, 'async_trait>(
&'life0 self,
user_id: i64
) -> Pin<Box<dyn Future<Output = Result<User, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_user_from_id<'life0, 'async_trait>( &'life0 self, user_id: i64 ) -> Pin<Box<dyn Future<Output = Result<User, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get
User
from user_id
.source§fn get_user_authentication_from_id<'life0, 'async_trait>(
&'life0 self,
user_id: i64
) -> Pin<Box<dyn Future<Output = Result<UserAuthentication, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_user_authentication_from_id<'life0, 'async_trait>( &'life0 self, user_id: i64 ) -> Pin<Box<dyn Future<Output = Result<UserAuthentication, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get
UserAuthentication
from user_id
.source§fn get_user_profile_from_username<'life0, 'life1, 'async_trait>(
&'life0 self,
username: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<UserProfile, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_user_profile_from_username<'life0, 'life1, 'async_trait>( &'life0 self, username: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<UserProfile, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Get
UserProfile
from username
.source§fn get_user_compact_from_id<'life0, 'async_trait>(
&'life0 self,
user_id: i64
) -> Pin<Box<dyn Future<Output = Result<UserCompact, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_user_compact_from_id<'life0, 'async_trait>( &'life0 self, user_id: i64 ) -> Pin<Box<dyn Future<Output = Result<UserCompact, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get
UserCompact
from user_id
.source§fn get_user_tracker_key<'life0, 'async_trait>(
&'life0 self,
user_id: i64
) -> Pin<Box<dyn Future<Output = Option<TrackerKey>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_user_tracker_key<'life0, 'async_trait>( &'life0 self, user_id: i64 ) -> Pin<Box<dyn Future<Output = Option<TrackerKey>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get a user’s
TrackerKey
.source§fn count_users<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_users<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get total user count.
source§fn ban_user<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: i64,
reason: &'life1 str,
date_expiry: NaiveDateTime
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ban_user<'life0, 'life1, 'async_trait>( &'life0 self, user_id: i64, reason: &'life1 str, date_expiry: NaiveDateTime ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Ban user with
user_id
, reason
and date_expiry
.source§fn grant_admin_role<'life0, 'async_trait>(
&'life0 self,
user_id: i64
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn grant_admin_role<'life0, 'async_trait>( &'life0 self, user_id: i64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Grant a user the administrator role.
source§fn verify_email<'life0, 'async_trait>(
&'life0 self,
user_id: i64
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn verify_email<'life0, 'async_trait>( &'life0 self, user_id: i64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Verify a user’s email with
user_id
.source§fn add_tracker_key<'life0, 'life1, 'async_trait>(
&'life0 self,
user_id: i64,
tracker_key: &'life1 TrackerKey
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn add_tracker_key<'life0, 'life1, 'async_trait>( &'life0 self, user_id: i64, tracker_key: &'life1 TrackerKey ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Link a
TrackerKey
to a certain user with user_id
.source§fn delete_user<'life0, 'async_trait>(
&'life0 self,
user_id: i64
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_user<'life0, 'async_trait>( &'life0 self, user_id: i64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Delete user and all related user data with
user_id
.source§fn insert_category_and_get_id<'life0, 'life1, 'async_trait>(
&'life0 self,
category_name: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn insert_category_and_get_id<'life0, 'life1, 'async_trait>( &'life0 self, category_name: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Add a new category and return
category_id
.source§fn get_category_from_id<'life0, 'async_trait>(
&'life0 self,
category_id: i64
) -> Pin<Box<dyn Future<Output = Result<Category, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_category_from_id<'life0, 'async_trait>( &'life0 self, category_id: i64 ) -> Pin<Box<dyn Future<Output = Result<Category, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get
Category
from category_id
.source§fn get_category_from_name<'life0, 'life1, 'async_trait>(
&'life0 self,
category_name: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Category, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_category_from_name<'life0, 'life1, 'async_trait>( &'life0 self, category_name: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<Category, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Get
Category
from category_name
.source§fn get_categories<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<Vec<Category>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_categories<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Vec<Category>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get all categories as
Vec<Category>
.source§fn delete_category<'life0, 'life1, 'async_trait>(
&'life0 self,
category_name: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_category<'life0, 'life1, 'async_trait>( &'life0 self, category_name: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Delete category with
category_name
.source§fn get_torrents_search_sorted_paginated<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
search: &'life1 Option<String>,
categories: &'life2 Option<Vec<String>>,
sort: &'life3 Sorting,
offset: u64,
limit: u8
) -> Pin<Box<dyn Future<Output = Result<TorrentsResponse, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn get_torrents_search_sorted_paginated<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, search: &'life1 Option<String>, categories: &'life2 Option<Vec<String>>, sort: &'life3 Sorting, offset: u64, limit: u8 ) -> Pin<Box<dyn Future<Output = Result<TorrentsResponse, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Get results of a torrent search in a paginated and sorted form as
TorrentsResponse
from search
, categories
, sort
, offset
and page_size
.source§fn insert_torrent_and_get_id<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
torrent: &'life1 Torrent,
uploader_id: i64,
category_id: i64,
title: &'life2 str,
description: &'life3 str
) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn insert_torrent_and_get_id<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, torrent: &'life1 Torrent, uploader_id: i64, category_id: i64, title: &'life2 str, description: &'life3 str ) -> Pin<Box<dyn Future<Output = Result<i64, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,
Add new torrent and return the newly inserted
torrent_id
with torrent
, uploader_id
, category_id
, title
and description
.source§fn get_torrent_info_from_id<'life0, 'async_trait>(
&'life0 self,
torrent_id: i64
) -> Pin<Box<dyn Future<Output = Result<DbTorrentInfo, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_torrent_info_from_id<'life0, 'async_trait>( &'life0 self, torrent_id: i64 ) -> Pin<Box<dyn Future<Output = Result<DbTorrentInfo, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get torrent’s info as
DbTorrentInfo
from torrent_id
.source§fn get_torrent_info_from_info_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
info_hash: &'life1 InfoHash
) -> Pin<Box<dyn Future<Output = Result<DbTorrentInfo, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_torrent_info_from_info_hash<'life0, 'life1, 'async_trait>( &'life0 self, info_hash: &'life1 InfoHash ) -> Pin<Box<dyn Future<Output = Result<DbTorrentInfo, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Get torrent’s info as
DbTorrentInfo
from torrent InfoHash
.source§fn get_torrent_files_from_id<'life0, 'async_trait>(
&'life0 self,
torrent_id: i64
) -> Pin<Box<dyn Future<Output = Result<Vec<TorrentFile>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_torrent_files_from_id<'life0, 'async_trait>( &'life0 self, torrent_id: i64 ) -> Pin<Box<dyn Future<Output = Result<Vec<TorrentFile>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get all torrent’s files as
Vec<TorrentFile>
from torrent_id
.source§fn get_torrent_announce_urls_from_id<'life0, 'async_trait>(
&'life0 self,
torrent_id: i64
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<String>>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_torrent_announce_urls_from_id<'life0, 'async_trait>( &'life0 self, torrent_id: i64 ) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<String>>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get all torrent’s announce urls as
Vec<Vec<String>>
from torrent_id
.source§fn get_torrent_listing_from_id<'life0, 'async_trait>(
&'life0 self,
torrent_id: i64
) -> Pin<Box<dyn Future<Output = Result<TorrentListing, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_torrent_listing_from_id<'life0, 'async_trait>( &'life0 self, torrent_id: i64 ) -> Pin<Box<dyn Future<Output = Result<TorrentListing, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get
TorrentListing
from torrent_id
.source§fn get_torrent_listing_from_info_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
info_hash: &'life1 InfoHash
) -> Pin<Box<dyn Future<Output = Result<TorrentListing, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_torrent_listing_from_info_hash<'life0, 'life1, 'async_trait>( &'life0 self, info_hash: &'life1 InfoHash ) -> Pin<Box<dyn Future<Output = Result<TorrentListing, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Get
TorrentListing
from InfoHash
.source§fn get_all_torrents_compact<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<Vec<TorrentCompact>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_torrents_compact<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Vec<TorrentCompact>, Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Get all torrents as
Vec<TorrentCompact>
.source§fn update_torrent_title<'life0, 'life1, 'async_trait>(
&'life0 self,
torrent_id: i64,
title: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_torrent_title<'life0, 'life1, 'async_trait>( &'life0 self, torrent_id: i64, title: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Update a torrent’s title with
torrent_id
and title
.source§fn update_torrent_description<'life0, 'life1, 'async_trait>(
&'life0 self,
torrent_id: i64,
description: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_torrent_description<'life0, 'life1, 'async_trait>( &'life0 self, torrent_id: i64, description: &'life1 str ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Update a torrent’s description with
torrent_id
and description
.source§fn update_tracker_info<'life0, 'life1, 'async_trait>(
&'life0 self,
torrent_id: i64,
tracker_url: &'life1 str,
seeders: i64,
leechers: i64
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_tracker_info<'life0, 'life1, 'async_trait>( &'life0 self, torrent_id: i64, tracker_url: &'life1 str, seeders: i64, leechers: i64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Update the seeders and leechers info for a torrent with
torrent_id
, tracker_url
, seeders
and leechers
.source§fn delete_torrent<'life0, 'async_trait>(
&'life0 self,
torrent_id: i64
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_torrent<'life0, 'async_trait>( &'life0 self, torrent_id: i64 ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Delete a torrent with
torrent_id
.source§fn delete_all_database_rows<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_all_database_rows<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
DELETES ALL DATABASE ROWS, ONLY CALL THIS IF YOU KNOW WHAT YOU’RE DOING!
Auto Trait Implementations§
impl !RefUnwindSafe for Sqlite
impl Send for Sqlite
impl Sync for Sqlite
impl Unpin for Sqlite
impl !UnwindSafe for Sqlite
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more