forked from security/hakurei
internal/pipewire: implement footer
The POD itself is serialised without requiring a special case, however its presence is only indicated by the difference in size recorded in the header and payload. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -386,6 +386,24 @@ func unmarshalCheckTypeBounds(data *[]byte, t Word, sizeP *Word) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// The Footer contains additional messages, not directed to
|
||||||
|
// the destination object defined by the Id field.
|
||||||
|
type Footer[T any] struct {
|
||||||
|
// The footer opcode.
|
||||||
|
Opcode Id
|
||||||
|
// The footer payload struct.
|
||||||
|
Payload T
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary satisfies [encoding.BinaryMarshaler] via [Marshal].
|
||||||
|
func (f *Footer[T]) MarshalBinary() ([]byte, error) { return Marshal(f) }
|
||||||
|
|
||||||
|
// UnmarshalBinary satisfies [encoding.BinaryUnmarshaler] via [Unmarshal].
|
||||||
|
func (f *Footer[T]) UnmarshalBinary(data []byte) error {
|
||||||
|
_, err := Unmarshal(data, f)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// SPADictItem is an encoding-compatible representation of spa_dict_item.
|
// SPADictItem is an encoding-compatible representation of spa_dict_item.
|
||||||
type SPADictItem struct{ Key, Value string }
|
type SPADictItem struct{ Key, Value string }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user