2024-07-27 15:42:50 +08:00
|
|
|
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
|
2024-03-24 11:25:35 +08:00
|
|
|
|
|
|
|
|
package kvstore
|
|
|
|
|
|
|
|
|
|
type BoolValueEncoder[T bool] struct {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewBoolValueEncoder[T bool]() *BoolValueEncoder[T] {
|
|
|
|
|
return &BoolValueEncoder[T]{}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *BoolValueEncoder[T]) Encode(value T) ([]byte, error) {
|
|
|
|
|
if value {
|
|
|
|
|
return []byte{1}, nil
|
|
|
|
|
}
|
|
|
|
|
return []byte{0}, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *BoolValueEncoder[T]) EncodeField(value T, fieldName string) ([]byte, error) {
|
|
|
|
|
_ = fieldName
|
|
|
|
|
return this.Encode(value)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (this *BoolValueEncoder[T]) Decode(valueData []byte) (value T, err error) {
|
|
|
|
|
if len(valueData) == 1 {
|
|
|
|
|
value = valueData[0] == 1
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
}
|