Exposed the LevelDB iterator in the DB struct.
This commit is contained in:
parent
eac3f2bc14
commit
bb8104b624
8
db.go
8
db.go
|
@ -12,6 +12,8 @@ type DB interface {
|
|||
NewBatch() Batch
|
||||
|
||||
// For debugging
|
||||
Iterator() Iterator
|
||||
Next(Iterator) (key []byte, value []byte)
|
||||
Print()
|
||||
}
|
||||
|
||||
|
@ -21,6 +23,12 @@ type Batch interface {
|
|||
Write()
|
||||
}
|
||||
|
||||
type Iterator interface {
|
||||
Next() bool
|
||||
Key() []byte
|
||||
Value() []byte
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
const (
|
||||
|
|
|
@ -90,6 +90,15 @@ func (db *GoLevelDB) Print() {
|
|||
}
|
||||
}
|
||||
|
||||
func (db *GoLevelDB) Iterator() Iterator {
|
||||
return db.db.NewIterator(nil, nil)
|
||||
}
|
||||
|
||||
func (db *GoLevelDB) Next(iter Iterator) ([]byte, []byte) {
|
||||
iter.Next()
|
||||
return iter.Key(), iter.Value()
|
||||
}
|
||||
|
||||
func (db *GoLevelDB) NewBatch() Batch {
|
||||
batch := new(leveldb.Batch)
|
||||
return &goLevelDBBatch{db, batch}
|
||||
|
|
10
mem_db.go
10
mem_db.go
|
@ -65,6 +65,16 @@ func (db *MemDB) Print() {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO: needs to be wired to range db.db
|
||||
func (db *MemDB) Iterator() Iterator {
|
||||
return nil
|
||||
}
|
||||
|
||||
// TODO: needs to be wired to range db.db
|
||||
func (db *MemDB) Next(iter Iterator) (key []byte, value []byte) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (db *MemDB) NewBatch() Batch {
|
||||
return &memDBBatch{db, nil}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue