native_db_32bit/transaction/query/
drain.rs

1use crate::db_type::{DatabaseSecondaryKeyOptions, Input, KeyDefinition, Result};
2use crate::transaction::internal::rw_transaction::InternalRwTransaction;
3
4pub struct RwDrain<'db, 'txn> {
5    pub(crate) internal: &'txn InternalRwTransaction<'db>,
6}
7
8impl<'db, 'txn> RwDrain<'db, 'txn> {
9    pub fn primary<T: Input>(&self) -> Result<Vec<T>> {
10        let model = T::native_db_model();
11        let out = self.internal.concrete_primary_drain(model)?;
12        Ok(out.into_iter().map(|b| b.inner()).collect())
13    }
14
15    /// **TODO: needs to be implemented**
16    pub fn secondary<T: Input>(
17        &self,
18        _key_def: impl KeyDefinition<DatabaseSecondaryKeyOptions>,
19    ) -> () {
20        todo!()
21    }
22}