Making as_page() unsafe
[?]
Feb 13, 2021, 3:40 PM
ESUI5EUZUBDPHNN3APU33IFORYPYR6J3WEMEZG57FKF3EH66ZBHACDependencies
- [2]
HN6Z5DU4Cleanup - [3]
H3FVSQIQUnsized pages - [4]
LROAI3NBTwo iterators (convenience functions), along with tests to move cursors (put and del still destroy cursors though) - [5]
ONES3V46reference counting works for put - [6]
UUUVNC4DDebugging/cleanup around cursors - [7]
AOX2XQISActually, with the correct functions, Unsized pages are always slower than Sized pages (especially for writing) - [8]
RV2L6CZWA few comments - [9]
QEUTVAZ4Splitting btree::page - [10]
W26CFMAQImproving safety of cursors - [11]
SO25TWFLA few features for integrating it into Pijul - [12]
EAAYH6BQDebugging put - [13]
OFINGD26implementing prev() on cursors (+ some cleanup) - [14]
PXF3R6SVImproving test coverage for btree::cursor - [15]
KM3JAFGPAdding a test for next/prev - [16]
WS4ZQM4RDebugging, tests, etc. - [17]
OP6SVMODResetting history - [18]
T73WR2BXCleaner RC increments for keys and values containing references + more comments in `del` - [19]
X3QVVQISMore debugging (del seems to work now) - [20]
G4JEQLLXDebugging synchronisation - [21]
Q7DRIBBRDebugging replace (which cannot be del+put) - [22]
6UVFCERMFormatting, debugging, etc. - [23]
73Z2UB3JCleanup + comments - [24]
6DCQHIFPMinor changes after benchmarking - [25]
KMT3MF5NDrop a database - [26]
6DMPXOATMore debugging - [27]
DV4A2LR7Double-inserts (rebalancing near an internal deletion) - [28]
OTWDDJE7Trait/type cleanup - [29]
KX3WVNZWTesting/debugging "rebalance causes split of the root" - [30]
XEU2QVLCDebugging after plugging this into Pijul - [31]
APPY2E7MUnsized deletions + custom sizes back - [32]
NXMFNPZ7Comments + debugging drop
Change contents
- replacement in sanakirja-core/src/lib.rs at line 165
pub fn as_page(&self) -> Page {pub unsafe fn as_page(&self) -> Page { - replacement in sanakirja-core/src/lib.rs at line 167
data: unsafe { &*(self.data as *const [u8; PAGE_SIZE]) },data: &*(self.data as *const [u8; PAGE_SIZE]), - replacement in sanakirja-core/src/btree/put.rs at line 209[2.2136]→[3.1067:1125](∅→∅),[3.3667]→[3.1067:1125](∅→∅),[3.380]→[3.1067:1125](∅→∅),[3.110]→[3.1067:1125](∅→∅),[3.1067]→[3.1067:1125](∅→∅)
let left = P::left_child(cur.page.as_page(), &c);let left = P::left_child(unsafe { cur.page.as_page() }, &c); - replacement in sanakirja-core/src/btree/put.rs at line 216
while let Some((k, v, r)) = P::next(txn, cur.page.as_page(), &mut c) {while let Some((k, v, r)) = P::next(txn, unsafe { cur.page.as_page() }, &mut c) { - replacement in sanakirja-core/src/btree/page_unsized.rs at line 97
let l = header(page.as_page()).left_page() & !0xfff;let l = header(unsafe { page.as_page() }).left_page() & !0xfff; - replacement in sanakirja-core/src/btree/page_unsized.rs at line 100
let s = Internal::offset_slice::<K, V>(page.as_page());let s = Internal::offset_slice::<K, V>(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page_unsized.rs at line 102
clone::<K, V, Internal>(page.as_page(), &mut new, s, &mut n);clone::<K, V, Internal>(unsafe { page.as_page() }, &mut new, s, &mut n); - replacement in sanakirja-core/src/btree/page_unsized.rs at line 198
let hdr = header(m.other.as_page());let hdr = header(unsafe { m.other.as_page() }); - replacement in sanakirja-core/src/btree/page_unsized.rs at line 224[2.2466]→[3.10286:10363](∅→∅),[3.1214]→[3.10286:10363](∅→∅),[3.106]→[3.10286:10363](∅→∅),[3.10286]→[3.10286:10363](∅→∅)
let first_size = <Page<K, V>>::current_size(m.other.as_page(), &rc);let first_size = <Page<K, V>>::current_size(unsafe { m.other.as_page() }, &rc); - replacement in sanakirja-core/src/btree/page_unsized.rs at line 271
let hdr = header(m.page.as_page());let hdr = header(unsafe { m.page.as_page() }); - replacement in sanakirja-core/src/btree/page_unsized.rs at line 283
total -= <Page<K, V> as BTreePage<K, V>>::current_size(m.page.as_page(), &m.c1) as usize;total -= <Page<K, V> as BTreePage<K, V>>::current_size(unsafe { m.page.as_page() }, &m.c1)as usize; - replacement in sanakirja-core/src/btree/page_unsized.rs at line 548
let mut l = <Page<K, V>>::left_child(m.page.as_page(), &m.c0);while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.page.as_page(), &mut m.c0) {let mut l = <Page<K, V>>::left_child(unsafe { m.page.as_page() }, &m.c0);while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.page.as_page() }, &mut m.c0) { - replacement in sanakirja-core/src/btree/page_unsized.rs at line 564
while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.page.as_page(), &mut m.c1) {while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.page.as_page() }, &mut m.c1) { - replacement in sanakirja-core/src/btree/page_unsized.rs at line 588[2.2962]→[3.20467:20533](∅→∅),[3.4309]→[3.20467:20533](∅→∅),[3.620]→[3.20467:20533](∅→∅),[3.20467]→[3.20467:20533](∅→∅)
let l = <Page<K, V>>::left_child(m.other.as_page(), &rc);let l = <Page<K, V>>::left_child(unsafe { m.other.as_page() }, &rc); - replacement in sanakirja-core/src/btree/page_unsized.rs at line 590
while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.other.as_page(), &mut rc) {while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.other.as_page() }, &mut rc) { - replacement in sanakirja-core/src/btree/page_unsized.rs at line 595[2.3014]→[3.20832:20992](∅→∅),[3.4366]→[3.20832:20992](∅→∅),[3.681]→[3.20832:20992](∅→∅),[3.20832]→[3.20832:20992](∅→∅)
let mut l = <Page<K, V>>::left_child(m.other.as_page(), &rc);while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.other.as_page(), &mut rc) {let mut l = <Page<K, V>>::left_child(unsafe { m.other.as_page() }, &rc);while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.other.as_page() }, &mut rc) { - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 19[2.3065]→[3.23384:23447](∅→∅),[3.4470]→[3.23384:23447](∅→∅),[3.741]→[3.23384:23447](∅→∅),[3.23384]→[3.23384:23447](∅→∅),[3.23447]→[3.4471:4552](∅→∅)
let rl = <Page<K, V>>::left_child(m.other.as_page(), &rc);let (k, v, r) = <Page<K, V>>::current(txn, m.other.as_page(), &rc).unwrap();let rl = <Page<K, V>>::left_child(unsafe { m.other.as_page() }, &rc);let (k, v, r) = <Page<K, V>>::current(txn, unsafe { m.other.as_page() }, &rc).unwrap(); - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 38
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 58
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 80
let hdr = &*header(m.other.as_page());let hdr = &*header(unsafe { m.other.as_page() }); - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 106
let lc = super::PageCursor::last(m.other.as_page());let (k0, v0, r0) = <Page<K, V>>::current(txn, m.other.as_page(), &lc).unwrap();let lc = super::PageCursor::last(unsafe { m.other.as_page() });let (k0, v0, r0) = <Page<K, V>>::current(txn, unsafe { m.other.as_page() }, &lc).unwrap(); - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 111[2.3175]→[3.25584:25655](∅→∅),[3.4810]→[3.25584:25655](∅→∅),[3.927]→[3.25584:25655](∅→∅),[3.25584]→[3.25584:25655](∅→∅)
let rl = <Page<K, V>>::left_child(m.modified.page.as_page(), &rc);let rl = <Page<K, V>>::left_child(unsafe { m.modified.page.as_page() }, &rc); - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 129
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 149
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page_unsized/rebalance.rs at line 177
let hdr = &*header(m.other.as_page());let hdr = &*header(unsafe { m.other.as_page() }); - replacement in sanakirja-core/src/btree/page_unsized/put.rs at line 30
let cur_size = Internal::current_size::<K, V>(page.as_page(), u as isize);let cur_size = Internal::current_size::<K, V>(unsafe { page.as_page() }, u as isize); - replacement in sanakirja-core/src/btree/page_unsized/put.rs at line 35
let hdr = header(page.as_page());let hdr = header(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page_unsized/put.rs at line 38
if mutable && is_dirty && L::can_alloc(header(page.as_page()), size) {if mutable && is_dirty && L::can_alloc(header(unsafe { page.as_page() }), size) { - replacement in sanakirja-core/src/btree/page_unsized/put.rs at line 68
let s = L::offset_slice::<K, V>(page.as_page());let s = L::offset_slice::<K, V>(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page_unsized/put.rs at line 72
clone::<K, V, L>(page.as_page(), &mut new, s0, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut new, s0, &mut n); - replacement in sanakirja-core/src/btree/page_unsized/put.rs at line 79
clone::<K, V, L>(page.as_page(), &mut new, s1, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut new, s1, &mut n); - replacement in sanakirja-core/src/btree/page_unsized/put.rs at line 88
return split_unsized::<_, _, _, L>(txn, page.as_page(), replace, u, k0, v0, k1v1, l, r);return split_unsized::<_, _, _, L>(txn,unsafe { page.as_page() },replace,u,k0,v0,k1v1,l,r,); - replacement in sanakirja-core/src/btree/page.rs at line 265
let l = header(page.as_page()).left_page() & !0xfff;let l = header(unsafe { page.as_page() }).left_page() & !0xfff; - replacement in sanakirja-core/src/btree/page.rs at line 268
let s = Internal::offset_slice::<T, K, V>(page.as_page());let s = Internal::offset_slice::<T, K, V>(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page.rs at line 270
clone::<K, V, Internal>(page.as_page(), &mut new, s, &mut n);clone::<K, V, Internal>(unsafe { page.as_page() }, &mut new, s, &mut n); - replacement in sanakirja-core/src/btree/page.rs at line 373
let hdr = header(m.other.as_page());let hdr = header(unsafe { m.other.as_page() }); - replacement in sanakirja-core/src/btree/page.rs at line 395[2.3947]→[3.5843:5920](∅→∅),[3.5687]→[3.5843:5920](∅→∅),[3.1076]→[3.5843:5920](∅→∅),[3.5843]→[3.5843:5920](∅→∅)
let first_size = <Page<K, V>>::current_size(m.other.as_page(), &rc);let first_size = <Page<K, V>>::current_size(unsafe { m.other.as_page() }, &rc); - replacement in sanakirja-core/src/btree/page.rs at line 440
let hdr = header(m.page.as_page());let hdr = header(unsafe { m.page.as_page() }); - replacement in sanakirja-core/src/btree/page.rs at line 457
total -= <Page<K, V> as BTreePage<K, V>>::current_size(m.page.as_page(), &m.c1) as usize;total -= <Page<K, V> as BTreePage<K, V>>::current_size(unsafe { m.page.as_page() }, &m.c1)as usize; - replacement in sanakirja-core/src/btree/page.rs at line 579
let mut l = <Page<K, V>>::left_child(m.page.as_page(), &m.c0);while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.page.as_page(), &mut m.c0) {let mut l = <Page<K, V>>::left_child(unsafe { m.page.as_page() }, &m.c0);while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.page.as_page() }, &mut m.c0) { - replacement in sanakirja-core/src/btree/page.rs at line 595
while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.page.as_page(), &mut m.c1) {while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.page.as_page() }, &mut m.c1) { - replacement in sanakirja-core/src/btree/page.rs at line 619[2.5784]→[3.20657:20723](∅→∅),[3.7920]→[3.20657:20723](∅→∅),[3.1310]→[3.20657:20723](∅→∅),[3.20657]→[3.20657:20723](∅→∅)
let l = <Page<K, V>>::left_child(m.other.as_page(), &rc);let l = <Page<K, V>>::left_child(unsafe { m.other.as_page() }, &rc); - replacement in sanakirja-core/src/btree/page.rs at line 621
while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.other.as_page(), &mut rc) {while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.other.as_page() }, &mut rc) { - replacement in sanakirja-core/src/btree/page.rs at line 626[2.5836]→[3.21005:21075](∅→∅),[3.7977]→[3.21005:21075](∅→∅),[3.1371]→[3.21005:21075](∅→∅),[3.21005]→[3.21005:21075](∅→∅),[3.21075]→[3.6417:6507](∅→∅)
let mut l = <Page<K, V>>::left_child(m.other.as_page(), &rc);while let Some((k, v, r)) = <Page<K, V>>::next(txn, m.other.as_page(), &mut rc) {let mut l = <Page<K, V>>::left_child(unsafe { m.other.as_page() }, &rc);while let Some((k, v, r)) = <Page<K, V>>::next(txn, unsafe { m.other.as_page() }, &mut rc) { - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 18[2.5887]→[3.883:946](∅→∅),[3.8033]→[3.883:946](∅→∅),[3.1431]→[3.883:946](∅→∅),[3.883]→[3.883:946](∅→∅),[3.946]→[3.8034:8115](∅→∅)
let rl = <Page<K, V>>::left_child(m.other.as_page(), &rc);let (k, v, r) = <Page<K, V>>::current(txn, m.other.as_page(), &rc).unwrap();let rl = <Page<K, V>>::left_child(unsafe { m.other.as_page() }, &rc);let (k, v, r) = <Page<K, V>>::current(txn, unsafe { m.other.as_page() }, &rc).unwrap(); - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 37
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 57
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 71
let b = if header(new_left.0.as_page()).is_dirty() {let b = if header(unsafe { new_left.0.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 83
let right_hdr = header(m.other.as_page());let right_hdr = header(unsafe { m.other.as_page() }); - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 115
let hdr = &*header(m.other.as_page());let hdr = &*header(unsafe { m.other.as_page() }); - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 143
let lc = PageCursor::last(m.other.as_page());let (k0, v0, r0) = <Page<K, V>>::current(txn, m.other.as_page(), &lc).unwrap();let lc = PageCursor::last(unsafe { m.other.as_page() });let (k0, v0, r0) = <Page<K, V>>::current(txn, unsafe { m.other.as_page() }, &lc).unwrap(); - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 148[2.5997]→[3.4490:4561](∅→∅),[3.8366]→[3.4490:4561](∅→∅),[3.1610]→[3.4490:4561](∅→∅),[3.4490]→[3.4490:4561](∅→∅)
let rl = <Page<K, V>>::left_child(m.modified.page.as_page(), &rc);let rl = <Page<K, V>>::left_child(unsafe { m.modified.page.as_page() }, &rc); - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 165
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 184
let b = if header(m.modified.page.as_page()).is_dirty() {let b = if header(unsafe { m.modified.page.as_page() }).is_dirty() { - replacement in sanakirja-core/src/btree/page/rebalance.rs at line 213
let hdr = &*header(m.other.as_page());let hdr = &*header(unsafe { m.other.as_page() }); - replacement in sanakirja-core/src/btree/page/put.rs at line 27
let hdr = header(page.as_page());let hdr = header(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page/put.rs at line 29
if mutable && is_dirty && L::can_alloc::<K, V>(header(page.as_page()), size) {if mutable && is_dirty && L::can_alloc::<K, V>(header(unsafe { page.as_page() }), size) { - replacement in sanakirja-core/src/btree/page/put.rs at line 58
let s = L::offset_slice::<T, K, V>(page.as_page());let s = L::offset_slice::<T, K, V>(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page/put.rs at line 62
clone::<K, V, L>(page.as_page(), &mut new, s0, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut new, s0, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 71
debug!("alloc: {:?}", header(new.0.as_page()).left_page());clone::<K, V, L>(page.as_page(), &mut new, s1, &mut n);debug!("alloc: {:?}",header(unsafe { new.0.as_page() }).left_page());clone::<K, V, L>(unsafe { page.as_page() }, &mut new, s1, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 109
let hdr = header(page.as_page());let hdr = header(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page/put.rs at line 116
let s = L::offset_slice::<T, K, V>(page.as_page());let s = L::offset_slice::<T, K, V>(unsafe { page.as_page() }); - replacement in sanakirja-core/src/btree/page/put.rs at line 123
let (k, v, r) = L::kv(txn, page.as_page(), s1a.first::<T, K, V>());let (k, v, r) = L::kv(txn, unsafe { page.as_page() }, s1a.first::<T, K, V>()); - replacement in sanakirja-core/src/btree/page/put.rs at line 139
clone::<K, V, L>(page.as_page(), &mut left, s0, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut left, s0, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 151
clone::<K, V, L>(page.as_page(), &mut right, s1a, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut right, s1a, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 153
clone::<K, V, L>(page.as_page(), &mut right, s1b, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut right, s1b, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 160
clone::<K, V, L>(page.as_page(), &mut right, s1, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut right, s1, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 173
let ll = header(page.as_page()).left_page() & !0xfff;let ll = header(unsafe { page.as_page() }).left_page() & !0xfff; - replacement in sanakirja-core/src/btree/page/put.rs at line 176
clone::<K, V, L>(page.as_page(), &mut left, s0a, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut left, s0a, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 178
clone::<K, V, L>(page.as_page(), &mut left, s0b, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut left, s0b, &mut n); - replacement in sanakirja-core/src/btree/page/put.rs at line 196
clone::<K, V, L>(page.as_page(), &mut right, s1, &mut n);clone::<K, V, L>(unsafe { page.as_page() }, &mut right, s1, &mut n); - replacement in sanakirja-core/src/btree/mod.rs at line 392
if let Ok((kk, vv, _)) = P::set_cursor(txn, page.as_page(), &mut cursor, k, v) {if let Ok((kk, vv, _)) = P::set_cursor(txn, unsafe { page.as_page() }, &mut cursor, k, v) { - replacement in sanakirja-core/src/btree/mod.rs at line 397
} else if let Some((k, v, _)) = P::current(txn, page.as_page(), &cursor) {} else if let Some((k, v, _)) = P::current(txn, unsafe { page.as_page() }, &cursor) { - replacement in sanakirja-core/src/btree/mod.rs at line 407
let next_page = P::left_child(page.as_page(), &cursor);let next_page = P::left_child(unsafe { page.as_page() }, &cursor); - replacement in sanakirja-core/src/btree/mod.rs at line 476
if let Some((k, v, _)) = P::current(txn, cur.page.as_page(), &cur.cursor) {if let Some((k, v, _)) = P::current(txn, unsafe { cur.page.as_page() }, &cur.cursor) { - replacement in sanakirja-core/src/btree/mod.rs at line 485
let r = P::left_child(cur.page.as_page(), &cur.cursor);let r = P::left_child(unsafe { cur.page.as_page() }, &cur.cursor); - replacement in sanakirja-core/src/btree/del.rs at line 56
P::current(txn, cur.page.as_page(), &cur.cursor).unwrap()P::current(txn, unsafe { cur.page.as_page() }, &cur.cursor).unwrap() - replacement in sanakirja-core/src/btree/del.rs at line 66
let mut left_page = P::right_child(cur.page.as_page(), &cur.cursor);let mut left_page = P::right_child(unsafe { cur.page.as_page() }, &cur.cursor); - replacement in sanakirja-core/src/btree/del.rs at line 70
left_page = P::left_child(page.as_page(), &curs);left_page = P::left_child(unsafe { page.as_page() }, &curs); - replacement in sanakirja-core/src/btree/del.rs at line 165
let (k, v, _) = P::current(txn, curs0.page.as_page(), &c1).unwrap();let (k, v, _) = P::current(txn, unsafe { curs0.page.as_page() }, &c1).unwrap(); - replacement in sanakirja-core/src/btree/del.rs at line 218
let other = txn.load_page(P::left_child(curs.page.as_page(), &curs.cursor))?;let other = txn.load_page(P::left_child(unsafe { curs.page.as_page() }, &curs.cursor))?; - replacement in sanakirja-core/src/btree/del.rs at line 243[3.3889]→[3.3889:4089](∅→∅),[3.4089]→[3.6014:6035](∅→∅),[3.6014]→[3.6014:6035](∅→∅),[3.6035]→[3.4090:4338](∅→∅),[3.4338]→[3.6078:6093](∅→∅),[3.6078]→[3.6078:6093](∅→∅)
let ((k, v, r), mod_is_left) =if let Some(x) = P::current(txn, curs.page.as_page(), &curs.cursor) {// Not the last element of the page.(x, true)} else {// Last element of the page.let (k, v, _) = P::prev(txn, curs.page.as_page(), &mut curs.cursor).unwrap();let l = P::left_child(curs.page.as_page(), &curs.cursor);((k, v, l), false)};let ((k, v, r), mod_is_left) = if let Some(x) =P::current(txn, unsafe { curs.page.as_page() }, &curs.cursor){// Not the last element of the page.(x, true)} else {// Last element of the page.let (k, v, _) = P::prev(txn, unsafe { curs.page.as_page() }, &mut curs.cursor).unwrap();let l = P::left_child(unsafe { curs.page.as_page() }, &curs.cursor);((k, v, l), false)}; - replacement in sanakirja-core/src/btree/del.rs at line 445
let mut left = P::left_child(m.page.as_page(), &c0);while let Some((k, v, r)) = P::next(txn, m.page.as_page(), &mut c0) {let mut left = P::left_child(unsafe { m.page.as_page() }, &c0);while let Some((k, v, r)) = P::next(txn, unsafe { m.page.as_page() }, &mut c0) { - replacement in sanakirja-core/src/btree/del.rs at line 471
if let Some((k, v, r)) = P::next(txn, m.page.as_page(), &mut c1) {if let Some((k, v, r)) = P::next(txn, unsafe { m.page.as_page() }, &mut c1) { - replacement in sanakirja-core/src/btree/del.rs at line 480
while let Some((k, v, r)) = P::next(txn, m.page.as_page(), &mut c1) {while let Some((k, v, r)) = P::next(txn, unsafe { m.page.as_page() }, &mut c1) { - replacement in sanakirja-core/src/btree/cursor.rs at line 128
if let Ok((kk, vv, _)) = P::set_cursor(txn, current.page.as_page(), cursor, k, v) {if let Ok((kk, vv, _)) =P::set_cursor(txn, unsafe { current.page.as_page() }, cursor, k, v){ - replacement in sanakirja-core/src/btree/cursor.rs at line 142
let next_page = P::left_child(current.page.as_page(), cursor);let next_page = P::left_child(unsafe { current.page.as_page() }, cursor); - replacement in sanakirja-core/src/btree/cursor.rs at line 176
let (k, v, r) = P::current(txn, current.page.as_page(), &mut current.cursor).unwrap();let (k, v, r) =P::current(txn, unsafe { current.page.as_page() }, &mut current.cursor).unwrap(); - replacement in sanakirja-core/src/btree/cursor.rs at line 210
let left = P::right_child(current.page.as_page(), ¤t.cursor);let left = P::right_child(unsafe { current.page.as_page() }, ¤t.cursor); - replacement in sanakirja-core/src/btree/cursor.rs at line 220
} else if let Some((k, v, r)) = P::current(txn, current.page.as_page(), ¤t.cursor)} else if let Some((k, v, r)) =P::current(txn, unsafe { current.page.as_page() }, ¤t.cursor) - replacement in sanakirja-core/src/btree/cursor.rs at line 250
let left = P::left_child(current.page.as_page(), ¤t.cursor);let left = P::left_child(unsafe { current.page.as_page() }, ¤t.cursor); - replacement in sanakirja-core/src/btree/cursor.rs at line 260
} else if let Some((k, v, _)) = P::current(txn, current.page.as_page(), ¤t.cursor)} else if let Some((k, v, _)) =P::current(txn, unsafe { current.page.as_page() }, ¤t.cursor) - replacement in sanakirja-core/src/btree/cursor.rs at line 264
let l = P::left_child(current.page.as_page(), ¤t.cursor);let l = P::left_child(unsafe { current.page.as_page() }, ¤t.cursor);