// /futriis/internal/msgpack/deserializer.go // Пакет msgpack расширяет функциональность десериализации для работы с динамическими типами. // Deserializer предоставляет дополнительные методы для десериализации произвольных значений и map-структур из формата MessagePack. // Используется когда точный тип данных неизвестен заранее, например, при обработке полей кортежей с различными типами значений. // Интегрируется с основным сериализатором для полного цикла преобразований. 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 }