From 8b8fed8873c6488d31edb3d9e141a36c0eb4eb05 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 17 Jul 2016 03:36:02 +0200 Subject: Ugly arrays --- query/query.go | 8 ++++++++ query/query_test.go | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/query/query.go b/query/query.go index b12a8ab..2e4ccc9 100644 --- a/query/query.go +++ b/query/query.go @@ -63,6 +63,14 @@ func marshalQuery(v reflect.Value) (string, error) { if f.Type().Elem().Kind() == reflect.Uint8 { q.Add(name, string(f.Bytes())) } + case reflect.Array: + if f.Type().Elem().Kind() == reflect.Uint8 { + tmp := make([]byte, f.Len()) + for i := 0; i < f.Len(); i++ { + tmp[i] = byte(f.Index(i).Uint()) + } + q.Add(name, string(tmp)) + } } } return "?" + q.Encode(), nil diff --git a/query/query_test.go b/query/query_test.go index 97cde6e..84d5ab1 100644 --- a/query/query_test.go +++ b/query/query_test.go @@ -7,11 +7,11 @@ func TestMarshal(t *testing.T) { A string `query:"x"` B int C string `query:",optional"` - D []byte + D [3]byte }{ A: "test", B: 100, - D: []byte{1, 2, 3}, + D: [3]byte{1, 2, 3}, } v, err := Marshal(q) if err != nil { -- cgit v1.2.3