write allocates and writes a bucket to a byte slice.
()
| 834 | |
| 835 | // write allocates and writes a bucket to a byte slice. |
| 836 | func (b *Bucket) write() []byte { |
| 837 | // Allocate the appropriate size. |
| 838 | var n = b.rootNode |
| 839 | var value = make([]byte, common.BucketHeaderSize+n.size()) |
| 840 | |
| 841 | // Write a bucket header. |
| 842 | var bucket = (*common.InBucket)(unsafe.Pointer(&value[0])) |
| 843 | *bucket = *b.InBucket |
| 844 | |
| 845 | // Convert byte slice to a fake page and write the root node. |
| 846 | var p = (*common.Page)(unsafe.Pointer(&value[common.BucketHeaderSize])) |
| 847 | n.write(p) |
| 848 | |
| 849 | return value |
| 850 | } |
| 851 | |
| 852 | // rebalance attempts to balance all nodes. |
| 853 | func (b *Bucket) rebalance() { |
no test coverage detected