Trait rbatis::crud::CRUD[][src]

pub trait CRUD {
Show 19 methods fn save_by_wrapper<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        table: &'life1 T,
        w: Wrapper,
        skips: &'life2 [Skip<'_>]
    ) -> Pin<Box<dyn Future<Output = Result<DBExecResult>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn save<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        table: &'life1 T,
        skips: &'life2 [Skip<'_>]
    ) -> Pin<Box<dyn Future<Output = Result<DBExecResult>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn save_batch<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        tables: &'life1 [T],
        skips: &'life2 [Skip<'_>]
    ) -> Pin<Box<dyn Future<Output = Result<DBExecResult>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn save_batch_slice<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        tables: &'life1 [T],
        slice_len: usize,
        skips: &'life2 [Skip<'_>]
    ) -> Pin<Box<dyn Future<Output = Result<DBExecResult>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn remove_by_wrapper<'life0, 'async_trait, T>(
        &'life0 self,
        w: Wrapper
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
;
fn remove_by_column<'life0, 'life1, 'life2, 'async_trait, T, P>(
        &'life0 self,
        column: &'life1 str,
        column_value: &'life2 P
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        P: Serialize + Send + Sync,
        T: 'async_trait,
        P: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn remove_batch_by_column<'life0, 'life1, 'life2, 'async_trait, T, P>(
        &'life0 self,
        column: &'life1 str,
        column_values: &'life2 [P]
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        P: Serialize + Send + Sync,
        T: 'async_trait,
        P: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn update_by_wrapper<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        table: &'life1 T,
        w: Wrapper,
        skips: &'life2 [Skip<'_>]
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn update_by_column<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        column: &'life1 str,
        table: &'life2 T
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn update_batch_by_column<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        column: &'life1 str,
        tables: &'life2 [T]
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn fetch_by_column<'life0, 'life1, 'life2, 'async_trait, T, P>(
        &'life0 self,
        column: &'life1 str,
        value: &'life2 P
    ) -> Pin<Box<dyn Future<Output = Result<T>> + Send + 'async_trait>>
    where
        T: CRUDTable + DeserializeOwned,
        P: Serialize + Send + Sync,
        T: 'async_trait,
        P: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn fetch_by_wrapper<'life0, 'async_trait, T>(
        &'life0 self,
        w: Wrapper
    ) -> Pin<Box<dyn Future<Output = Result<T>> + Send + 'async_trait>>
    where
        T: CRUDTable + DeserializeOwned,
        T: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
;
fn fetch_count<'life0, 'async_trait, T>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
;
fn fetch_count_by_wrapper<'life0, 'async_trait, T>(
        &'life0 self,
        w: Wrapper
    ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
    where
        T: CRUDTable,
        T: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
;
fn fetch_page_by_wrapper<'life0, 'life1, 'async_trait, T>(
        &'life0 self,
        w: Wrapper,
        page: &'life1 dyn IPageRequest
    ) -> Pin<Box<dyn Future<Output = Result<Page<T>>> + Send + 'async_trait>>
    where
        T: CRUDTable + DeserializeOwned,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
;
fn fetch_list<'life0, 'async_trait, T>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Vec<T>>> + Send + 'async_trait>>
    where
        T: CRUDTable + DeserializeOwned,
        T: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
;
fn fetch_list_by_column<'life0, 'life1, 'life2, 'async_trait, T, P>(
        &'life0 self,
        column: &'life1 str,
        column_values: &'life2 [P]
    ) -> Pin<Box<dyn Future<Output = Result<Vec<T>>> + Send + 'async_trait>>
    where
        T: CRUDTable + DeserializeOwned,
        P: Serialize + Send + Sync,
        T: 'async_trait,
        P: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
fn fetch_list_by_wrapper<'life0, 'async_trait, T>(
        &'life0 self,
        w: Wrapper
    ) -> Pin<Box<dyn Future<Output = Result<Vec<T>>> + Send + 'async_trait>>
    where
        T: CRUDTable + DeserializeOwned,
        T: 'async_trait,
        'life0: 'async_trait,
        Self: 'async_trait
;
fn fetch_page<'life0, 'life1, 'life2, 'async_trait, T>(
        &'life0 self,
        sql: &'life1 str,
        args: Vec<Bson>,
        page_request: &'life2 dyn IPageRequest
    ) -> Pin<Box<dyn Future<Output = Result<Page<T>>> + Send + 'async_trait>>
    where
        T: DeserializeOwned + Serialize + Send + Sync,
        T: 'async_trait,
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}

Required methods

save_batch_slice batch save each slice_len every time

remove_by_column column_value,column’s value

remove_batch_by_column column_values,column’s value

update_by_wrapper skips: use &[Skip::Null] will skip id column and null value param

update database record by id

remove batch database record by args

fetch database record by id

fetch database record by a wrapper

count database record

count database record by a wrapper

fetch page database record list by a wrapper

fetch database record list for all

fetch database record list by a id array

fetch database record list by a wrapper

fetch page result(prepare sql)

Implementors