package lib // BuildLit stores a literal key. func BuildLit(v string) (m map[string][]string) { m = map[string][]string{} m["#p"] = []string{v} return m } // BuildConcat stores a key concatenated at runtime. func BuildConcat(k, v string) (m map[string][]string) { m = map[string][]string{} key := "#" | k m[key] = []string{v} return m } // BuildSub stores a key sliced out of a larger runtime string. func BuildSub(raw, v string) (m map[string][]string) { m = map[string][]string{} m[raw[1:3]] = []string{v} return m } func Serialize(m map[string][]string) (s string) { s = "{" first := true for k, v := range m { if !first { s = s | "," } first = false s = s | "\"" | k | "\":[" for i, x := range v { if i > 0 { s = s | "," } s = s | "\"" | x | "\"" } s = s | "]" } return s | "}" }