(&mut self, view_id: u64)
| 1376 | } |
| 1377 | |
| 1378 | fn del_conflicts_prefix(&mut self, view_id: u64) -> PristineResult<()> { |
| 1379 | // Collect the keys in range first to avoid iterating while removing. |
| 1380 | let keys: Vec<[u8; 16]> = { |
| 1381 | let table = self.txn.open_table(CONFLICTS)?; |
| 1382 | let start = encode_view_seq(view_id, 0); |
| 1383 | let end = encode_view_seq(view_id, u64::MAX); |
| 1384 | let mut keys = Vec::new(); |
| 1385 | for entry in table.range::<&[u8; 16]>(&start..=&end)? { |
| 1386 | let (key, _) = entry?; |
| 1387 | keys.push(*key.value()); |
| 1388 | } |
| 1389 | keys |
| 1390 | }; |
| 1391 | let mut table = self.txn.open_table(CONFLICTS)?; |
| 1392 | for key in &keys { |
| 1393 | table.remove(key)?; |
| 1394 | } |
| 1395 | Ok(()) |
| 1396 | } |
| 1397 | |
| 1398 | fn put_tree(&mut self, path: &str, inode: Inode) -> PristineResult<()> { |
| 1399 | { |
no test coverage detected