diff options
Diffstat (limited to 'redisDB.go')
| -rw-r--r-- | redisDB.go | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/redisDB.go b/redisDB.go deleted file mode 100644 index 08c044d..0000000 --- a/redisDB.go +++ /dev/null @@ -1,59 +0,0 @@ -package main - -import ( - "fmt" - "time" -) -type Item struct { - Value any - ExpiresAt *time.Time -} - -type RedisDB struct { - shards []*Shard -} - -type SimpleString string - -func serializeRESP(v any) []byte { - switch val := v.(type) { - case string: - bulkString := fmt.Sprintf("$%d\r\n%s\r\n", len(val), val) - return []byte(bulkString) - case int: - integerString := fmt.Sprintf(":%d\r\n",val) - return []byte(integerString) - case nil: - return []byte("$-1\r\n") - case error: - errorString := fmt.Sprintf("-ERR %s\r\n",val.Error()) - return []byte(errorString) - case []string: - size := len(val) - result := []byte(fmt.Sprintf("*%d\r\n", size)) - for i := 0; i < size; i++ { - result = append(result, serializeRESP(val[i])...) - } - return result - case []any: - size := len(val) - result := []byte(fmt.Sprintf("*%d\r\n", size)) - for i := 0; i < size; i++ { - result = append(result, serializeRESP(val[i])...) - } - return result - case map[string]string: - size := len(val) - result := []byte(fmt.Sprintf("*%d\r\n", size*2)) - for key, value := range val { - result = append(result, serializeRESP(key)...) - result = append(result, serializeRESP(value)...) - } - return result - case SimpleString: - simpleStr := fmt.Sprintf("+%s\r\n", val) - return []byte(simpleStr) - default: - return []byte("-ERR internal server error: unknown type\r\n") - } -} |
