2020-03-10 12:20:34 -07:00
|
|
|
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
|
|
|
|
package nodb
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/ava-labs/gecko/database"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Database is a lightning fast key value store with probabilistic operations.
|
|
|
|
type Database struct{}
|
|
|
|
|
|
|
|
// Has returns false, nil
|
|
|
|
func (*Database) Has([]byte) (bool, error) { return false, database.ErrClosed }
|
|
|
|
|
|
|
|
// Get returns nil, error
|
|
|
|
func (*Database) Get([]byte) ([]byte, error) { return nil, database.ErrClosed }
|
|
|
|
|
|
|
|
// Put returns nil
|
|
|
|
func (*Database) Put(_ []byte, _ []byte) error { return database.ErrClosed }
|
|
|
|
|
|
|
|
// Delete returns nil
|
|
|
|
func (*Database) Delete([]byte) error { return database.ErrClosed }
|
|
|
|
|
|
|
|
// NewBatch returns a new batch
|
|
|
|
func (*Database) NewBatch() database.Batch { return &Batch{} }
|
|
|
|
|
|
|
|
// NewIterator returns a new empty iterator
|
|
|
|
func (*Database) NewIterator() database.Iterator { return &Iterator{} }
|
|
|
|
|
|
|
|
// NewIteratorWithStart returns a new empty iterator
|
|
|
|
func (*Database) NewIteratorWithStart([]byte) database.Iterator { return &Iterator{} }
|
|
|
|
|
|
|
|
// NewIteratorWithPrefix returns a new empty iterator
|
|
|
|
func (*Database) NewIteratorWithPrefix([]byte) database.Iterator { return &Iterator{} }
|
|
|
|
|
|
|
|
// NewIteratorWithStartAndPrefix returns a new empty iterator
|
|
|
|
func (db *Database) NewIteratorWithStartAndPrefix(start, prefix []byte) database.Iterator {
|
|
|
|
return &Iterator{}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Stat returns an error
|
|
|
|
func (*Database) Stat(string) (string, error) { return "", database.ErrClosed }
|
|
|
|
|
|
|
|
// Compact returns nil
|
|
|
|
func (*Database) Compact(_, _ []byte) error { return database.ErrClosed }
|
|
|
|
|
|
|
|
// Close returns nil
|
|
|
|
func (*Database) Close() error { return database.ErrClosed }
|
|
|
|
|
|
|
|
// Batch does nothing
|
|
|
|
type Batch struct{}
|
|
|
|
|
|
|
|
// Put returns nil
|
|
|
|
func (*Batch) Put(_, _ []byte) error { return database.ErrClosed }
|
|
|
|
|
|
|
|
// Delete returns nil
|
|
|
|
func (*Batch) Delete([]byte) error { return database.ErrClosed }
|
|
|
|
|
|
|
|
// ValueSize returns 0
|
|
|
|
func (*Batch) ValueSize() int { return 0 }
|
|
|
|
|
|
|
|
// Write returns nil
|
|
|
|
func (*Batch) Write() error { return database.ErrClosed }
|
|
|
|
|
|
|
|
// Reset does nothing
|
|
|
|
func (*Batch) Reset() {}
|
|
|
|
|
|
|
|
// Replay does nothing
|
|
|
|
func (*Batch) Replay(database.KeyValueWriter) error { return database.ErrClosed }
|
|
|
|
|
2020-03-18 10:57:36 -07:00
|
|
|
// Inner returns itself
|
|
|
|
func (b *Batch) Inner() database.Batch { return b }
|
|
|
|
|
2020-03-10 12:20:34 -07:00
|
|
|
// Iterator does nothing
|
|
|
|
type Iterator struct{ Err error }
|
|
|
|
|
|
|
|
// Next returns false
|
|
|
|
func (*Iterator) Next() bool { return false }
|
|
|
|
|
|
|
|
// Error returns any errors
|
|
|
|
func (it *Iterator) Error() error { return it.Err }
|
|
|
|
|
|
|
|
// Key returns nil
|
|
|
|
func (*Iterator) Key() []byte { return nil }
|
|
|
|
|
|
|
|
// Value returns nil
|
|
|
|
func (*Iterator) Value() []byte { return nil }
|
|
|
|
|
|
|
|
// Release does nothing
|
|
|
|
func (*Iterator) Release() {}
|