mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-05 01:20:26 +08:00
24 lines
600 B
Go
24 lines
600 B
Go
|
|
// 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
|
||
|
|
}
|