SCXMBF3YX34HIMX3IZNRMBLCXY2FSBRNCP6MXJH4UEBXUML45I5AC
P::set_left_child(
&mut new_page_,
&new_curs,
P::left_child(page.as_page(), &curs),
);
let left = P::left_child(page.as_page(), &curs);
if left != 0 {
assert!(dict.insert(left));
let new_page = txn.txn.alloc_page()?;
let off = new_page.0.offset;
P::set_left_child(
&mut new_page_,
&new_curs,
off,
);
pending.push((left, new_page));
}
while let Some((k, v, r)) = P::next(&txn.txn, page.as_page(), &mut curs) {
let (k, v) = f(file_txn, txn, k, v)?;
while let Some((k_, v_, r)) = P::next(&txn.txn, page.as_page(), &mut curs) {
let (k, v) = f(file_txn, txn, k_, v_)?;
assert_eq!(&k, k_);
assert_eq!(&v, v_);
P::set_left_child(
&mut new_page_,
&new_curs,
P::left_child(page.as_page(), &curs),
);
let left = P::left_child(page.as_page(), &curs);
if left != 0 {
let new = *new_page;
*new_page += BLOCK_SIZE as u64;
P::set_left_child(
&mut new_page_,
&new_curs,
new,
);
pending.push_back((left, new));
}