| 138 | } |
| 139 | |
| 140 | fn scan( |
| 141 | &self, |
| 142 | key_info: &TableKeyInfo, |
| 143 | limit: Option<i64>, |
| 144 | exclusive_start_key: Option<&Item>, |
| 145 | segment: Option<i64>, |
| 146 | total_segments: Option<i64>, |
| 147 | index_name: Option<&str>, |
| 148 | ) -> BoxFuture<'_, Result<(Vec<Item>, Option<Item>), StorageError>> { |
| 149 | let key_info = key_info.clone(); |
| 150 | let exclusive_start_key = exclusive_start_key.cloned(); |
| 151 | let index_name = index_name.map(|s| s.to_string()); |
| 152 | Box::pin(async move { |
| 153 | self.scan_impl( |
| 154 | &key_info, |
| 155 | limit, |
| 156 | exclusive_start_key.as_ref(), |
| 157 | segment, |
| 158 | total_segments, |
| 159 | index_name.as_deref(), |
| 160 | ) |
| 161 | .await |
| 162 | }) |
| 163 | } |
| 164 | |
| 165 | fn transact_get_items( |
| 166 | &self, |