From 63a8cddd2bdc0b27e9174609a8bb8bcf0288f091 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Wed, 16 Apr 2014 09:38:53 -0400 Subject: [PATCH] Add Cursor.Bucket() function. This commit adds an accessor to the Cursor type to retrieve the Bucket that it was created from. --- cursor.go | 5 +++++ cursor_test.go | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/cursor.go b/cursor.go index f6dc79c..13f2a06 100644 --- a/cursor.go +++ b/cursor.go @@ -12,6 +12,11 @@ type Cursor struct { stack []elemRef } +// Bucket returns the bucket that this cursor was created from. +func (c *Cursor) Bucket() *Bucket { + return c.bucket +} + // First moves the cursor to the first item in the bucket and returns its key and value. // If the bucket is empty then a nil key and value are returned. func (c *Cursor) First() (key []byte, value []byte) { diff --git a/cursor_test.go b/cursor_test.go index 00fc561..5dd178e 100644 --- a/cursor_test.go +++ b/cursor_test.go @@ -8,6 +8,18 @@ import ( "github.com/stretchr/testify/assert" ) +// Ensure that a cursor can return a reference to the bucket that created it. +func TestCursor_Bucket(t *testing.T) { + withOpenDB(func(db *DB, path string) { + db.Update(func(tx *Tx) error { + b, _ := tx.CreateBucket([]byte("widgets")) + c := b.Cursor() + assert.Equal(t, b, c.Bucket()) + return nil + }) + }) +} + // Ensure that a Tx cursor can seek to the appropriate keys. func TestCursor_Seek(t *testing.T) { withOpenDB(func(db *DB, path string) {