1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#![deny(missing_docs)]
#![cfg_attr(test, deny(warnings))]
#![cfg_attr(test, deny(bad_style))]
#![cfg_attr(test, deny(future_incompatible))]
#![cfg_attr(test, deny(nonstandard_style))]
#![cfg_attr(test, deny(rust_2018_compatibility))]
#![cfg_attr(test, deny(rust_2018_idioms))]
#![cfg_attr(feature = "clippy", feature(plugin))]
#![cfg_attr(feature = "clippy", plugin(clippy))]
#![cfg_attr(feature = "clippy", allow(inline_always))]
extern crate pagecache;
#[macro_use]
extern crate serde_derive;
#[macro_use]
extern crate log as _log;
mod bound;
mod data;
mod frag;
mod iter;
mod materializer;
mod node;
mod prefix;
mod tree;
pub use self::iter::Iter;
pub use self::tree::Tree;
use pagecache::*;
pub use pagecache::{Config, ConfigBuilder, Error, Result};
use self::bound::Bound;
use self::data::Data;
use self::frag::{ChildSplit, ParentSplit};
use self::node::Node;
use self::prefix::{prefix_cmp, prefix_decode, prefix_encode};
pub(crate) use self::frag::Frag;
pub(crate) use self::materializer::BLinkMaterializer;
type Key = Vec<u8>;
type KeyRef<'a> = &'a [u8];
type Value = Vec<u8>;
type TreePtr<'g> = pagecache::PagePtr<'g, Frag>;