diff options
author | EuAndreh <eu@euandre.org> | 2025-02-07 07:26:16 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2025-02-07 07:26:22 -0300 |
commit | 7b3b038f70e165711b77ce4513480892fca3b4f7 (patch) | |
tree | e5220d5f22963a56b95008732163e9b6673979f3 /src/dedo.go | |
parent | src/dedo.go: Introduce inMemoryTx (diff) | |
download | dedo-7b3b038f70e165711b77ce4513480892fca3b4f7.tar.gz dedo-7b3b038f70e165711b77ce4513480892fca3b4f7.tar.xz |
src/dedo.go: Introduce SnapshotI type
Diffstat (limited to 'src/dedo.go')
-rw-r--r-- | src/dedo.go | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/dedo.go b/src/dedo.go index 9f64693..c0aecaf 100644 --- a/src/dedo.go +++ b/src/dedo.go @@ -127,13 +127,20 @@ type ITx interface{ OnCommit(func()) WriteTo(io.Writer) (int64, error) +} + +type SnapshotI interface{ + Bucket([]byte) *Bucket + + WriteTo(io.Writer) (int64, error) + ForEach(func([]byte, *Bucket) error) error Check() <-chan error } type IDedo interface{ Close() error - View (func(tx ITx) error) error + View (func(tx SnapshotI) error) error Update(func(tx ITx) error) error Path() string } @@ -1743,7 +1750,7 @@ func (m *InMemory) Update(fn func(ITx) error) error { return err } -func (m *InMemory) View(func(ITx) error) error { +func (m *InMemory) View(func(SnapshotI) error) error { return nil } @@ -2109,7 +2116,7 @@ func (db *DB) Update(fn func(ITx) error) error { /// the DB.View() method. /// /// Attempting to manually rollback within the function will cause a panic. -func (db *DB) View(fn func(ITx) error) error { +func (db *DB) View(fn func(SnapshotI) error) error { t, err := db.begin(false) if err != nil { return err @@ -3967,9 +3974,9 @@ func setGetopt(args argsT, w io.Writer) (argsT, bool) { } func checkExec(args argsT, db IDedo, _r io.Reader, _w io.Writer) error { - return db.View(func(tx ITx) error { + return db.View(func(snapshot SnapshotI) error { var errs error - for err := range tx.Check() { + for err := range snapshot.Check() { errs = g.WrapErrors(errs, err) } return errs @@ -3977,8 +3984,8 @@ func checkExec(args argsT, db IDedo, _r io.Reader, _w io.Writer) error { } func getExec(args argsT, db IDedo, r io.Reader, w io.Writer) error { - return db.View(func(tx ITx) error { - bucket := tx.Bucket(args.bucket) + return db.View(func(snapshot SnapshotI) error { + bucket := snapshot.Bucket(args.bucket) if bucket == nil { return ErrBucketNotFound } @@ -4016,9 +4023,9 @@ func rmExec(args argsT, db IDedo, r io.Reader, w io.Writer) error { } func listExec(args argsT, db IDedo, r io.Reader, w io.Writer) error { - return db.View(func(tx ITx) error { + return db.View(func(snapshot SnapshotI) error { if len(args.bucket) == 0 { - return tx.ForEach(func( + return snapshot.ForEach(func( name []byte, bucket *Bucket, ) error { @@ -4027,7 +4034,7 @@ func listExec(args argsT, db IDedo, r io.Reader, w io.Writer) error { }) } - bucket := tx.Bucket(args.bucket) + bucket := snapshot.Bucket(args.bucket) if bucket == nil { return ErrBucketNotFound } |