in image/map.go [67:98]
func (img *Image) Map() (map[string]interface{}, error) {
offs, err := img.Offsets()
if err != nil {
return nil, err
}
m := map[string]interface{}{}
m["header"] = img.Header.Map(offs.Header)
m["body"] = rawBodyMap(offs.Body)
if img.Header.ProtSz > 0 {
protTrailer := img.ProtTrailer()
m["prot_trailer"] = protTrailer.Map(offs.ProtTrailer)
}
trailer := img.Trailer()
m["trailer"] = trailer.Map(offs.Trailer)
tlvMaps := []map[string]interface{}{}
for i, tlv := range img.Tlvs {
tlvMaps = append(tlvMaps, tlv.Map(i, offs.Tlvs[i]))
}
m["tlvs"] = tlvMaps
protTlvMaps := []map[string]interface{}{}
for i, tlv := range img.ProtTlvs {
protTlvMaps = append(protTlvMaps, tlv.Map(i, offs.ProtTlvs[i]))
}
m["prot_tlvs"] = protTlvMaps
return m, nil
}