Compare commits
No commits in common. "b058f9d770d9100ef9bf24d72db97cf4b1a5a695" and "ddeafe015b35c407cadd70f401c3dc8ca564646e" have entirely different histories.
b058f9d770
...
ddeafe015b
@ -1,43 +0,0 @@
|
|||||||
package storage
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/db"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
DATATYPE_USERSUB = 64
|
|
||||||
)
|
|
||||||
|
|
||||||
type SubPrefixDb struct {
|
|
||||||
store db.Db
|
|
||||||
pfx []byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewSubPrefixDb(store db.Db, pfx []byte) *SubPrefixDb {
|
|
||||||
return &SubPrefixDb{
|
|
||||||
store: store,
|
|
||||||
pfx: pfx,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func(s *SubPrefixDb) toKey(k []byte) []byte {
|
|
||||||
return append(s.pfx, k...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func(s *SubPrefixDb) Get(ctx context.Context, key []byte) ([]byte, error) {
|
|
||||||
s.store.SetPrefix(DATATYPE_USERSUB)
|
|
||||||
key = s.toKey(key)
|
|
||||||
v, err := s.store.Get(ctx, key)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return v, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func(s *SubPrefixDb) Put(ctx context.Context, key []byte, val []byte) error {
|
|
||||||
s.store.SetPrefix(DATATYPE_USERSUB)
|
|
||||||
key = s.toKey(key)
|
|
||||||
return s.store.Put(ctx, key, val)
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
package storage
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"context"
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
memdb "git.defalsify.org/vise.git/db/mem"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestSubPrefix(t *testing.T) {
|
|
||||||
ctx := context.Background()
|
|
||||||
db := memdb.NewMemDb()
|
|
||||||
err := db.Connect(ctx, "")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
sdba := NewSubPrefixDb(db, []byte("tinkywinky"))
|
|
||||||
err = sdba.Put(ctx, []byte("foo"), []byte("dipsy"))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
r, err := sdba.Get(ctx, []byte("foo"))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if !bytes.Equal(r, []byte("dipsy")) {
|
|
||||||
t.Fatalf("expected 'dipsy', got %s", r)
|
|
||||||
}
|
|
||||||
|
|
||||||
sdbb := NewSubPrefixDb(db, []byte("lala"))
|
|
||||||
r, err = sdbb.Get(ctx, []byte("foo"))
|
|
||||||
if err == nil {
|
|
||||||
t.Fatal("expected not found")
|
|
||||||
}
|
|
||||||
|
|
||||||
err = sdbb.Put(ctx, []byte("foo"), []byte("pu"))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
r, err = sdbb.Get(ctx, []byte("foo"))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if !bytes.Equal(r, []byte("pu")) {
|
|
||||||
t.Fatalf("expected 'pu', got %s", r)
|
|
||||||
}
|
|
||||||
|
|
||||||
r, err = sdba.Get(ctx, []byte("foo"))
|
|
||||||
if !bytes.Equal(r, []byte("dipsy")) {
|
|
||||||
t.Fatalf("expected 'dipsy', got %s", r)
|
|
||||||
}
|
|
||||||
}
|
|
@ -5,6 +5,10 @@ import (
|
|||||||
"git.defalsify.org/vise.git/persist"
|
"git.defalsify.org/vise.git/persist"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DATATYPE_CUSTOM = 128
|
||||||
|
)
|
||||||
|
|
||||||
type Storage struct {
|
type Storage struct {
|
||||||
Persister *persist.Persister
|
Persister *persist.Persister
|
||||||
UserdataDb db.Db
|
UserdataDb db.Db
|
||||||
|
Loading…
Reference in New Issue
Block a user