aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-07-17 03:36:02 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-07-17 03:36:02 +0200
commit8b8fed8873c6488d31edb3d9e141a36c0eb4eb05 (patch)
tree0f1b7f771473c68d47aa7deb1e6f8356a00ab87a
parent0fe086993b01f7d53c8b226bd1eb5665c1d0c18f (diff)
Ugly arrays
-rw-r--r--query/query.go8
-rw-r--r--query/query_test.go4
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 {