tempdb

package module
v0.0.0-...-83bc03e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2024 License: MIT Imports: 8 Imported by: 1

README

TempDB

TempDB is a drop-in replacement for go.etcd.io/bbolt and compatible with github.com/btcsuite/btcwallet/walletdb. TempDB supports the browser so we cannot use the file system or mmap.

Documentation

Index

Constants

View Source
const RootBucketID = BucketID(0)

Variables

View Source
var ErrUnimplemented = errors.New("unimplemented")
View Source
var Logger *slog.Logger

Functions

func New

func New(args ...any) (walletdb.DB, error)

func Open

func Open(args ...any) (walletdb.DB, error)

Open always returns `walletdb.ErrDbDoesNotExist` because tempdb is not persistent.

Types

type Bucket

type Bucket struct {
	ID     BucketID
	Parent BucketID

	Key   []byte
	Value map[string][]byte
	// contains filtered or unexported fields
}

func (*Bucket) CreateBucket

func (bkt *Bucket) CreateBucket(key []byte) (walletdb.ReadWriteBucket, error)

func (*Bucket) CreateBucketIfNotExists

func (bkt *Bucket) CreateBucketIfNotExists(key []byte) (walletdb.ReadWriteBucket, error)

func (*Bucket) Delete

func (bkt *Bucket) Delete(key []byte) error

func (*Bucket) DeleteNestedBucket

func (bkt *Bucket) DeleteNestedBucket(key []byte) error

func (*Bucket) ForEach

func (bkt *Bucket) ForEach(fn func(k, v []byte) error) error

func (*Bucket) Get

func (bkt *Bucket) Get(key []byte) []byte

func (*Bucket) NestedReadBucket

func (bkt *Bucket) NestedReadBucket(key []byte) walletdb.ReadBucket

func (*Bucket) NestedReadWriteBucket

func (bkt *Bucket) NestedReadWriteBucket(key []byte) walletdb.ReadWriteBucket

func (*Bucket) NextSequence

func (bkt *Bucket) NextSequence() (uint64, error)

func (*Bucket) Put

func (bkt *Bucket) Put(key, value []byte) error

func (*Bucket) ReadCursor

func (bkt *Bucket) ReadCursor() walletdb.ReadCursor

func (*Bucket) ReadWriteCursor

func (bkt *Bucket) ReadWriteCursor() walletdb.ReadWriteCursor

func (*Bucket) Sequence

func (bkt *Bucket) Sequence() uint64

func (*Bucket) SetSequence

func (bkt *Bucket) SetSequence(v uint64) error

func (*Bucket) Tx

func (bkt *Bucket) Tx() walletdb.ReadWriteTx

type BucketID

type BucketID uint64

type Cursor

type Cursor struct {
	// contains filtered or unexported fields
}

func (*Cursor) Delete

func (c *Cursor) Delete() error

func (*Cursor) First

func (c *Cursor) First() ([]byte, []byte)

func (*Cursor) Last

func (c *Cursor) Last() ([]byte, []byte)

func (*Cursor) Next

func (c *Cursor) Next() ([]byte, []byte)

func (*Cursor) Prev

func (c *Cursor) Prev() ([]byte, []byte)

func (*Cursor) Seek

func (c *Cursor) Seek(seek []byte) ([]byte, []byte)

type DB

type DB struct {
	Path  string
	State *State
	// contains filtered or unexported fields
}

func (*DB) Batch

func (db *DB) Batch(fn func(tx walletdb.ReadWriteTx) error) error

func (*DB) BeginReadTx

func (db *DB) BeginReadTx() (walletdb.ReadTx, error)

func (*DB) BeginReadWriteTx

func (db *DB) BeginReadWriteTx() (walletdb.ReadWriteTx, error)

func (*DB) Close

func (sl *DB) Close() error

func (*DB) Copy

func (sl *DB) Copy(w io.Writer) error

unimplemented.

func (*DB) PrintStats

func (sl *DB) PrintStats() string

unimplemented.

func (*DB) Update

func (db *DB) Update(fn func(tx walletdb.ReadWriteTx) error, reset func()) error

func (*DB) View

func (db *DB) View(f func(tx walletdb.ReadTx) error, reset func()) error

type State

type State struct {
	Buckets []Bucket
	// contains filtered or unexported fields
}

func (*State) Add

func (s *State) Add(bkt Bucket) BucketID

func (*State) Copy

func (s *State) Copy() *State

perform a deep copy.

type Transaction

type Transaction struct {
	State *State

	ID int

	Rolledback bool
	// contains filtered or unexported fields
}

func (*Transaction) Commit

func (tx *Transaction) Commit() error

func (*Transaction) CreateTopLevelBucket

func (tx *Transaction) CreateTopLevelBucket(key []byte) (walletdb.ReadWriteBucket, error)

func (*Transaction) DeleteTopLevelBucket

func (tx *Transaction) DeleteTopLevelBucket(key []byte) error

func (*Transaction) ForEachBucket

func (tx *Transaction) ForEachBucket(f func(key []byte) error) error

func (*Transaction) OnCommit

func (tx *Transaction) OnCommit(f func())

func (*Transaction) ReadBucket

func (tx *Transaction) ReadBucket(key []byte) walletdb.ReadBucket

func (*Transaction) ReadWriteBucket

func (tx *Transaction) ReadWriteBucket(key []byte) walletdb.ReadWriteBucket

func (*Transaction) Rollback

func (tx *Transaction) Rollback() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL