18
19
// Deserialize implements nexus.Serializer.
21
>
payloadRef, ok := v.(**commonpb.Payload)
22
>
if !ok {
23
return fmt.Errorf("%w: cannot deserialize into %v", errSerializer, v)
24
}
25
27
>
*payloadRef = payload
28
>
payload.Metadata = make(map[string][]byte)
29
>
payload.Data = content.Data
30
>
31
>
h := maps.Clone(content.Header)
32
>
// We assume that encoding is handled by the transport layer and the content is decoded.
33
>
delete(h, "encoding")
34
>
// Length can safely be ignored.
35
>
delete(h, "length")
36
>
37
>
if len(h) > 1 {
38
setUnknownNexusContent(h, payload.Metadata)
39
return nil