Nim query string encode and parse helpers

Nim
import std/[uri, strutils]

proc parseQueryString(qs: string): seq[(string, string)] =
  for pair in qs.split('&'):
    if pair.len == 0: continue
    let kv = pair.split('=', maxsplit = 1)
    let val = if kv.len > 1: decodeUrl(kv[1]) else: ""
    result.add((decodeUrl(kv[0]), val))

let encoded = encodeQuery([(key: "q", val: "nim 2.0"),
                           (key: "page", val: "2")])
echo encoded
for k, v in parseQueryString(encoded):
  echo k, "=", v