26KI6CQSTGLQ4MGPLFQYPLDMH56M6VY6KQB5ONMQXUNV3ZX665TQC DASFQGORX56YK5E4Y7GGYZSQQQMUXYTZZ4A6IVWSTI3QGRUORLPAC LSQ6V7M66TEGLJ7QBLRVDX4E7UKJTDQTEXZOS3KGPGFKVXNLPKBQC XEU2QVLCHPYOOD4TQIPEEVYOVSFMKFPLJYWEJYXYJAZ7S54KWDZAC OP6SVMOD2GTQ7VNJ4E5KYFG4MIYA7HBMXJTADALMZH4PY7OQRMZQC HN6Z5DU4WYMAIOOSNVHLIIMNF6Q53TNJ7YC27SLKWNXVYCTACQKQC PXF3R6SVXJXN2NMLMWNY5OFV5QYVE2VZTLGIZDZVK5ZVLFTVSSWQC ESUI5EUZUBDPHNN3APU33IFORYPYR6J3WEMEZG57FKF3EH66ZBHAC 73Z2UB3JGRLFNFORE7D64O4IHIFSZASD4G4FLJ4FJLHANT75MGIAC KM3JAFGPFV7MP7M2LJIYRVAUTU646B3IRXADTRZKOU2RF7LUB62QC TSMS6W4DOKQNUQ4PEMTLOIODR33VFPN6MMNS73ZPSU4BOQVRGPNAC LROAI3NBBSCU4T2YA6EHJYKKKL75AU5A7C7WIRCGIQ56S6HPLRXQC OFINGD26ZWCRDVVDI2ZIBLMHXKEMJA6MRNLANJYUHQPIJLPA7J2AC if P::is_init(¤t.cursor) {let left = P::right_child(current.page.as_page(), ¤t.cursor);P::move_next(&mut current.cursor);// Visit the left child of the page (if any), i.e. push.if left != 0 {let page = txn.load_page(left)?;self.push(PageCursor {cursor: P::cursor_before(&page),page,})
if P::is_empty(¤t.cursor) {if self.len > 1 {if self.first_rc_len == self.len {self.first_rc_len = N_CURSORS}self.len -= 1} else {return Ok(None);
} else if let Some((k, v, r)) = P::current(txn, current.page.as_page(), ¤t.cursor){
} else {let (cur_entry, r) = if let Some((k, v, r)) = P::current(txn, current.page.as_page(), ¤t.cursor) {(Some((k, v)), r)} else {(None, P::right_child(current.page.as_page(), ¤t.cursor))};
/// Move the cursor to the previous entry, and return the current/// entry. If the cursor is initially after all the entries, this/// moves it back by two steps.
/// Move the cursor to the previous entry, and return the entry/// that was current before the move. If the cursor is initially/// after all the entries, this moves it back by two steps.
if P::is_empty(¤t.cursor) {
if P::is_init(¤t.cursor) {if self.len > 1 {if self.first_rc_len == self.len {self.first_rc_len = N_CURSORS}self.len -= 1;let current = unsafe { &mut *self.stack[self.len - 1].as_mut_ptr() };P::move_prev(&mut current.cursor);} else {return Ok(None);}} else {let cur_entry = P::current(txn, current.page.as_page(), ¤t.cursor);
P::move_prev(&mut current.cursor);}} else if let Some((k, v, _)) = P::current(txn, current.page.as_page(), ¤t.cursor){let l = P::left_child(current.page.as_page(), ¤t.cursor);if l > 0 {let page = txn.load_page(l)?;self.push(PageCursor {cursor: P::cursor_after(&page),page,})} else {
} else if self.len > 1 {self.len -= 1;let current = unsafe { &mut *self.stack[self.len - 1].as_mut_ptr() };P::move_prev(&mut current.cursor);} else {return Ok(None);