From 00157e463c9f49ef9eebba5663187826139688bd Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Fri, 5 Jan 2024 06:36:18 -0500 Subject: [PATCH] refactor: add directoryReferenceSerializationMap map wrapper to handle DirectoryReference serialization --- metadata/directory_map.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/metadata/directory_map.go b/metadata/directory_map.go index 81dcf17..cd9ab76 100644 --- a/metadata/directory_map.go +++ b/metadata/directory_map.go @@ -14,9 +14,15 @@ type fileReferenceMap struct { linkedhashmap.Map } +type directoryReferenceSerializationMap struct { + linkedhashmap.Map +} + type unmarshalNewInstanceFunc func() interface{} var _ SerializableMetadata = (*directoryReferenceMap)(nil) +var _ SerializableMetadata = (*fileReferenceMap)(nil) +var _ msgpack.CustomEncoder = (*directoryReferenceSerializationMap)(nil) func unmarshalMapMsgpack(dec *msgpack.Decoder, m *linkedhashmap.Map, placeholder interface{}, intMap bool) error { *m = *linkedhashmap.New() @@ -170,3 +176,7 @@ func (drm *directoryReferenceMap) UnmarshalJSON(bytes []byte) error { createDirInstance := func() interface{} { return &DirectoryReference{} } return unmarshalMapJson(bytes, &drm.Map, createDirInstance) } + +func (frm directoryReferenceSerializationMap) EncodeMsgpack(enc *msgpack.Encoder) error { + return marshallMapMsgpack(enc, &frm.Map) +}