1818proc parseHook * [T](s: string , i: var int , v: var seq [T])
1919proc parseHook * [T: enum ](s: string , i: var int , v: var T)
2020proc parseHook * [T: object | ref object ](s: string , i: var int , v: var T)
21- proc parseHook * [T ](s: string , i: var int , v: var SomeTable [string , T ])
21+ proc parseHook * [K: string | enum , V ](s: string , i: var int , v: var SomeTable [K, V ])
2222proc parseHook * [T](s: string , i: var int , v: var (SomeSet [T]| set [T]))
2323proc parseHook * [T: tuple ](s: string , i: var int , v: var T)
2424proc parseHook * [T: array ](s: string , i: var int , v: var T)
@@ -494,7 +494,7 @@ proc parseHook*[T](s: string, i: var int, v: var Option[T]) =
494494 parseHook (s, i, e)
495495 v = some (e)
496496
497- proc parseHook * [T ](s: string , i: var int , v: var SomeTable [string , T ]) =
497+ proc parseHook * [K: string | enum , V ](s: string , i: var int , v: var SomeTable [K, V ]) =
498498 # # Parse an object.
499499 when compiles (new (v)):
500500 new (v)
@@ -503,10 +503,10 @@ proc parseHook*[T](s: string, i: var int, v: var SomeTable[string, T]) =
503503 eatSpace (s, i)
504504 if i < s.len and s[i] == '}' :
505505 break
506- var key: string
506+ var key: K
507507 parseHook (s, i, key)
508508 eatChar (s, i, ':' )
509- var element: T
509+ var element: V
510510 parseHook (s, i, element)
511511 v[key] = element
512512 if i < s.len and s[i] == ',' :
0 commit comments