mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-12-31 02:26:36 +08:00
初步实验使用KV数据库(pebble)存储缓存索引
This commit is contained in:
23
internal/utils/kvstore/value_encoder.go
Normal file
23
internal/utils/kvstore/value_encoder.go
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package kvstore
|
||||
|
||||
import "encoding/json"
|
||||
|
||||
type ValueEncoder[T any] interface {
|
||||
Encode(value T) ([]byte, error)
|
||||
EncodeField(value T, fieldName string) ([]byte, error)
|
||||
Decode(valueBytes []byte) (value T, err error)
|
||||
}
|
||||
|
||||
type BaseObjectEncoder[T any] struct {
|
||||
}
|
||||
|
||||
func (this *BaseObjectEncoder[T]) Encode(value T) ([]byte, error) {
|
||||
return json.Marshal(value)
|
||||
}
|
||||
|
||||
func (this *BaseObjectEncoder[T]) Decode(valueData []byte) (value T, err error) {
|
||||
err = json.Unmarshal(valueData, &value)
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user