From a39251ee0de2c834458a36f3d38a36ace667c9cb Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 12 Jun 2016 21:54:38 +0200 Subject: Add optional param --- bencode/bencode.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bencode/bencode.go b/bencode/bencode.go index dd8a23c..062e980 100644 --- a/bencode/bencode.go +++ b/bencode/bencode.go @@ -71,14 +71,15 @@ func marshalDict(out io.Writer, v reflect.Value) { if tag == "-" { continue } - name, _ := parseTag(tag) + name, param := parseTag(tag) if name == "" { name = f.Name } - if !isEmpty(v.Field(i)) { - marshalString(out, name) - marshalField(out, v.Field(i)) + if param == "optional" && isEmpty(v.Field(i)) { + continue } + marshalString(out, name) + marshalField(out, v.Field(i)) } io.WriteString(out, "e") } -- cgit v1.2.3