-
Notifications
You must be signed in to change notification settings - Fork 2
/
links.go
31 lines (22 loc) · 669 Bytes
/
links.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright 2020 Contributors to the Veraison project.
// SPDX-License-Identifier: Apache-2.0
package swid
import "reflect"
// Links models link-entry / [ 2* link-entry ]
type Links []Link
// MarshalCBOR provides the custom CBOR marshaler for link entries
func (la Links) MarshalCBOR() ([]byte, error) {
return arrayToCBOR(reflect.ValueOf(la))
}
// UnmarshalCBOR provides the custom CBOR unmarshaler for link entries
func (la *Links) UnmarshalCBOR(data []byte) error {
if (data[0] & 0xe0) == 0x80 {
return dm.Unmarshal(data, (*[]Link)(la))
}
var l Link
if err := dm.Unmarshal(data, &l); err != nil {
return err
}
*la = append(*la, l)
return nil
}