Skip to content

Commit

Permalink
code format
Browse files Browse the repository at this point in the history
  • Loading branch information
satoshi-099 committed Jan 8, 2024
1 parent f99e4d0 commit f559cb8
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 62 deletions.
22 changes: 10 additions & 12 deletions db.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ var cmdTable = []Cmd{
default:
return fmt.Errorf("%w: %d", ErrUnSupportDataType, tp)
}

return nil
}},

Expand All @@ -132,7 +131,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

db.Remove(keys...)
return nil
}},
Expand All @@ -146,7 +144,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

return db.HSet(key, field, val)
}},

Expand All @@ -158,7 +155,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

_, err := db.HRemove(key, fields...)
return err
}},
Expand All @@ -171,7 +167,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

_, err := db.SAdd(key, items...)
return err
}},
Expand All @@ -184,7 +179,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

return db.SRemove(key, items...)
}},

Expand Down Expand Up @@ -257,7 +251,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

_, err := db.BitSet(key, val, offsets...)
return err
}},
Expand All @@ -270,7 +263,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

return db.BitFlip(key, offset)
}},

Expand Down Expand Up @@ -304,7 +296,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

return db.ZAdd(key, field, score)
}},

Expand All @@ -317,7 +308,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

_, err := db.ZIncr(key, field, score)
return err
}},
Expand All @@ -330,7 +320,6 @@ var cmdTable = []Cmd{
if decoder.Error != nil {
return decoder.Error
}

return db.ZRemove(key, field)
}},
}
Expand Down Expand Up @@ -359,7 +348,7 @@ type (

// DB represents a rotom database engindb.
type DB struct {
// mu guards wal.
// mu guards wal data.
mu sync.Mutex
*Options

Expand Down Expand Up @@ -806,6 +795,15 @@ func (db *DB) LLen(key string) (int, error) {
return ls.Size(), nil
}

// LKeys
func (db *DB) LKeys(key string) ([]string, error) {
ls, err := db.fetchList(key)
if err != nil {
return nil, err
}
return ls.Keys(), nil
}

// BitTest
func (db *DB) BitTest(key string, offset uint32) (bool, error) {
bm, err := db.fetchBitMap(key)
Expand Down
95 changes: 48 additions & 47 deletions db_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,41 +216,33 @@ func TestList(t *testing.T) {
db, err := createDB()
assert.Nil(err)

for i := 0; i < 20000; i++ {
key := gofakeit.UUID()
animal := gofakeit.Animal()

err = db.LRPush(key, animal)
assert.Nil(err)

res, err := db.LLPop(key)
assert.Nil(err)
assert.Equal(res, animal)

num, err := db.LLen(key)
assert.Nil(err)
assert.Equal(num, 0)
}

for i := 0; i < 10000; i++ {
key := gofakeit.UUID()
animal := gofakeit.Animal()

err = db.LLPush(key, animal)
assert.Nil(err)
key := "list" + strconv.Itoa(i/100)
val := gofakeit.Animal()

// Index
res, err := db.LIndex(key, 0)
assert.Nil(err)
assert.Equal(res, animal)
if i%2 == 0 {
assert.Nil(db.LRPush(key, val))
} else {
assert.Nil(db.LLPush(key, val))
}

res, err = db.LRPop(key)
assert.Nil(err)
assert.Equal(res, animal)
if i > 8000 {
if i%2 == 0 {
res, err := db.LRPop(key)
assert.Nil(err)
assert.Equal(res, val)
} else {
res, err := db.LLPop(key)
assert.Nil(err)
assert.Equal(res, val)
}
}

num, err := db.LLen(key)
assert.Nil(err)
assert.Equal(num, 0)
keys, err := db.LKeys(key)
assert.Nil(err)
assert.Equal(len(keys), num)
}

// Error
Expand Down Expand Up @@ -278,24 +270,26 @@ func TestList(t *testing.T) {
assert.Equal(n, 0)
assert.ErrorContains(err, ErrWrongType.Error())

db.LRPush("list", "1")
db.LRPop("list")

// empty list
res, err = db.LLPop("list")
assert.Equal(res, "")
assert.Equal(err, ErrEmptyList)
{
db.LRPush("list", "1")
db.LRPop("list")

res, err = db.LRPop("list")
assert.Equal(res, "")
assert.Equal(err, ErrEmptyList)
res, err = db.LLPop("list")
assert.Equal(res, "")
assert.Equal(err, ErrEmptyList)

res, err = db.LIndex("list", 9)
assert.Equal(res, "")
assert.Equal(err, ErrIndexOutOfRange)
res, err = db.LRPop("list")
assert.Equal(res, "")
assert.Equal(err, ErrEmptyList)

for i := 0; i < 100; i++ {
db.LRPush("list", gofakeit.Animal())
res, err = db.LIndex("list", 9)
assert.Equal(res, "")
assert.Equal(err, ErrIndexOutOfRange)

for i := 0; i < 100; i++ {
db.LRPush("list", gofakeit.Animal())
}
}

// reload
Expand Down Expand Up @@ -713,10 +707,17 @@ func TestRace(t *testing.T) {
assert := assert.New(t)

// open invalid options.
invalidOptions := DefaultOptions
invalidOptions.DirPath = ""
_, err := Open(invalidOptions)
assert.NotNil(err)
{
invalidOptions := DefaultOptions
invalidOptions.DirPath = ""
_, err := Open(invalidOptions)
assert.NotNil(err)

invalidOptions.DirPath = "test1"
invalidOptions.ShardCount = -1
_, err = Open(invalidOptions)
assert.NotNil(err)
}

// dirpath race.
options := DefaultOptions
Expand Down
10 changes: 7 additions & 3 deletions structx/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,21 @@ func (l *List[V]) Size() int {
return n
}

// MarshalJSON
func (l *List[V]) MarshalJSON() ([]byte, error) {
// Keys
func (l *List[V]) Keys() []V {
l.mu.RLock()
defer l.mu.RUnlock()

arr := make([]V, 0, l.ls.Size())
for n := l.ls.Begin(); n.IsValid(); n.Next() {
arr = append(arr, n.Get())
}
return arr
}

return sonic.Marshal(arr)
// MarshalJSON
func (l *List[V]) MarshalJSON() ([]byte, error) {
return sonic.Marshal(l.Keys())
}

// UnmarshalJSON
Expand Down

0 comments on commit f559cb8

Please sign in to comment.