From c5fb8a2c150e6405d1610df7b3e2c2e381471e62 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Fri, 5 Jan 2024 06:08:55 -0500 Subject: [PATCH] refactor: change FileReference.EncodeMsgpack to use new map wrappers, and don't serialize ext or history if empty --- metadata/file_reference.go | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/metadata/file_reference.go b/metadata/file_reference.go index 0cee94a..e8bad9e 100644 --- a/metadata/file_reference.go +++ b/metadata/file_reference.go @@ -47,30 +47,26 @@ func (fr *FileReference) Modified() int { } func (fr *FileReference) EncodeMsgpack(enc *msgpack.Encoder) error { - data := map[int]interface{}{ - 1: fr.Name, - 2: fr.Created, - 4: fr.File, - 5: fr.Version, - } + tempMap := linkedhashmap.New() + + tempMap.Put(1, fr.Name) + tempMap.Put(2, fr.Created) + tempMap.Put(4, fr.File) + tempMap.Put(5, fr.Version) if fr.MimeType != "" { - data[6] = fr.MimeType + tempMap.Put(6, fr.MimeType) } - if fr.Ext != nil { - data[7] = fr.Ext + if !fr.Ext.Empty() { + tempMap.Put(7, fr.Ext) } - if fr.History != nil { - historyData := make(map[int]interface{}) - for key, value := range fr.History { - historyData[key] = value - } - data[8] = historyData + if !fr.History.Empty() { + tempMap.Put(8, fr.History) } - return enc.Encode(data) + return enc.Encode(tempMap) } func (fr *FileReference) DecodeMsgpack(dec *msgpack.Decoder) error { mapLen, err := dec.DecodeMapLen()