go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

commit c1256156ed8bc09cedab84d3755987863632b0c9
parent 2b7c8fcaa59a1fbeb2e038246f29377fcb2f2664
Author: lash <dev@holbrook.no>
Date:   Sat, 18 Jan 2025 15:57:35 +0000

DRY fs dump code

Diffstat:
Mdb/fs/dump.go | 27++++++++++++---------------
Mdb/gdbm/dump.go | 22----------------------
2 files changed, 12 insertions(+), 37 deletions(-)

diff --git a/db/fs/dump.go b/db/fs/dump.go @@ -8,6 +8,15 @@ import ( "git.defalsify.org/vise.git/db" ) +func(fdb *fsDb) nextElement() []byte { + v := fdb.elements[0] + fdb.elements = fdb.elements[1:] + s := v.Name() + k := []byte(s) + k[0] -= 0x30 + return k +} + func(fdb *fsDb) Dump(ctx context.Context, key []byte) (*db.Dumper, error) { var err error key = append([]byte{fdb.Prefix()}, key...) @@ -19,11 +28,7 @@ func(fdb *fsDb) Dump(ctx context.Context, key []byte) (*db.Dumper, error) { if len(fdb.elements) > 0 { if len(key) == 0 { - v := fdb.elements[0] - fdb.elements = fdb.elements[1:] - s := v.Name() - k := []byte(s) - k[0] -= 0x30 + k := fdb.nextElement() kk, err := fdb.DecodeKey(ctx, k) if err != nil { return nil, err @@ -36,14 +41,10 @@ func(fdb *fsDb) Dump(ctx context.Context, key []byte) (*db.Dumper, error) { } } for len(fdb.elements) > 0 { - v := fdb.elements[0] - fdb.elements = fdb.elements[1:] - s := v.Name() - k := []byte(s) + k := fdb.nextElement() if len(key) > len(k) { continue } - k[0] -= 0x30 kk, err := fdb.DecodeKey(ctx, k) if err != nil { continue @@ -64,11 +65,7 @@ func(fdb *fsDb) dumpFunc(ctx context.Context) ([]byte, []byte) { if len(fdb.elements) == 0 { return nil, nil } - v := fdb.elements[0] - fdb.elements = fdb.elements[1:] - s := v.Name() - k := []byte(s) - k[0] -= 0x30 + k := fdb.nextElement() kk, err := fdb.DecodeKey(ctx, k) if err != nil { return nil, nil diff --git a/db/gdbm/dump.go b/db/gdbm/dump.go @@ -10,7 +10,6 @@ import ( "git.defalsify.org/vise.git/db" ) -// TODO: userdata is hardcoded here, should not be func(gdb *gdbmDb) Dump(ctx context.Context, key []byte) (*db.Dumper, error) { gdb.SetLanguage(nil) lk, err := gdb.ToKey(ctx, key) @@ -32,7 +31,6 @@ func(gdb *gdbmDb) Dump(ctx context.Context, key []byte) (*db.Dumper, error) { if !bytes.HasPrefix(k, key) { continue } - logg.TraceCtxf(ctx, "dump trace", "k", k, "key", key) kk, err := gdb.DecodeKey(ctx, k) if err != nil { return nil, err @@ -69,7 +67,6 @@ func(gdb *gdbmDb) dumpFunc(ctx context.Context) ([]byte, []byte) { gdb.it = nil return nil, nil } - logg.TraceCtxf(ctx, "gdbm dump func", "key", k) kk, err := gdb.DecodeKey(ctx, k) if err != nil { return nil, nil @@ -80,22 +77,3 @@ func(gdb *gdbmDb) dumpFunc(ctx context.Context) ([]byte, []byte) { } return kk, v } - -//func(gdb *gdbmDb) After(ctx context.Context, keyPart []byte) ([]byte, []byte) { -// if keyPart == nil { -// gdb.it = gdb.conn.Iterator() -// return nil, nil -// } -// k, err := gdb.it() -// if err != nil { -// if !errors.Is(err, gdbm.ErrItemNotFound) { -// panic(err) -// } -// gdb.it = gdb.conn.Iterator() -// } -// v, err := gdb.Get(ctx, k) -// if err != nil { -// panic(err) -// } -// return k, v -//}