futriis/internal/msgpack/deserializer.go

43 lines
1.2 KiB
Go
Raw Permalink Normal View History

2026-02-23 22:48:31 +03:00
// /futriis/internal/msgpack/deserializer.go
// Пакет msgpack предоставляет дополнительные методы десериализации
// /futriis/internal/msgpack/deserializer.go
package msgpack
import (
"futriis/pkg/types"
"github.com/vmihailenco/msgpack/v5"
)
// Deserializer расширяет функциональность десериализации
type Deserializer struct {
serializer *Serializer
}
// NewDeserializer создаёт новый экземпляр десериализатора
func NewDeserializer() *Deserializer {
return &Deserializer{
serializer: NewSerializer(),
}
}
// DeserializeValue десериализует значение произвольного типа
func (d *Deserializer) DeserializeValue(data []byte) (interface{}, error) {
var value interface{}
err := msgpack.Unmarshal(data, &value)
if err != nil {
return nil, err
}
return value, nil
}
// DeserializeMap десериализует данные в карту
func (d *Deserializer) DeserializeMap(data []byte) (map[string]interface{}, error) {
var m map[string]interface{}
err := msgpack.Unmarshal(data, &m)
if err != nil {
return nil, err
}
return m, nil
}