From 6257df31e04a6705244f034e345c427a74f2181c Mon Sep 17 00:00:00 2001 From: Keagan McClelland Date: Wed, 17 Apr 2024 16:11:20 -0600 Subject: [PATCH] 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. --- tlv/record.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tlv/record.go b/tlv/record.go index 7d3575f20..a872e6004 100644 --- a/tlv/record.go +++ b/tlv/record.go @@ -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 {