in mfg/map_meta.go [31:66]
func (t *MetaTlv) bodyMap() (map[string]interface{}, error) {
r := bytes.NewReader(t.Data)
readBody := func(dst interface{}) error {
if err := binary.Read(r, binary.LittleEndian, dst); err != nil {
return errors.Wrapf(err, "error parsing TLV data")
}
return nil
}
switch t.Header.Type {
case META_TLV_TYPE_HASH:
var body MetaTlvBodyHash
if err := readBody(&body); err != nil {
return nil, err
}
return body.Map(), nil
case META_TLV_TYPE_FLASH_AREA:
var body MetaTlvBodyFlashArea
if err := readBody(&body); err != nil {
return nil, err
}
return body.Map(), nil
case META_TLV_TYPE_MMR_REF:
var body MetaTlvBodyMmrRef
if err := readBody(&body); err != nil {
return nil, err
}
return body.Map(), nil
default:
return nil, errors.Errorf("unknown meta TLV type: %d", t.Header.Type)
}
}