tlv: add axiomatic RecordProducer implementation for Record

This commit introduces a RecordProducer implementation for Record
that serves as the identity function. This makes it easier for us
to mix Primitive and Dynamic records in the same RecordProducer
collections.
This commit is contained in:
Keagan McClelland 2024-04-17 16:11:20 -06:00
parent 2ccf58e2af
commit 6257df31e0

View File

@ -63,6 +63,15 @@ type Record struct {
decoder Decoder
}
// Record (the function) is the trivial implementation of RecordProducer for
// Record (the type). This makes it seamless to mix primitive and dynamic
// records together in the same collections.
//
// NOTE: Part of the RecordProducer interface.
func (f *Record) Record() Record {
return *f
}
// Size returns the size of the Record's value. If no static size is known, the
// dynamic size will be evaluated.
func (f *Record) Size() uint64 {