aboutsummaryrefslogtreecommitdiff
path: root/page.go
diff options
context:
space:
mode:
Diffstat (limited to 'page.go')
-rw-r--r--page.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/page.go b/page.go
new file mode 100644
index 0000000..3f1e6b3
--- /dev/null
+++ b/page.go
@@ -0,0 +1,44 @@
+package bolt
+
+import (
+ "unsafe"
+)
+
+const MinPageKeys = 2
+const FillThreshold = 250 // 25%
+
+const (
+ BranchPage = 0x01
+ LeafPage = 0x02
+ OverflowPage = 0x04
+ MetaPage = 0x08
+ DirtyPage = 0x10 /**< dirty page, also set for #P_SUBP pages */
+ SubPage = 0x40
+ KeepPage = 0x8000 /**< leave this page alone during spill */
+)
+
+type page struct {
+ header struct {
+ id int
+ next *page // (?)
+ lower int
+ upper int
+ overflowPageCount int
+ }
+ metadata []byte
+}
+
+// nodeCount returns the number of nodes on the page.
+func (p *page) nodeCount() int {
+ return 0 // (p.header.lower - unsafe.Sizeof(p.header) >> 1
+}
+
+// remainingSize returns the number of bytes left in the page.
+func (p *page) remainingSize() int {
+ return p.header.upper - p.header.lower
+}
+
+// remainingSize returns the number of bytes left in the page.
+func (p *page) remainingSize() int {
+ return p.header.upper - p.header.lower
+}