Procs
- proc decodePercent(s: openArray[char]; i: var int): char {....raises: [], tags: [], forbids: [].} 
- 
    
    Converts %xx hexadecimal to the character with ordinal number xx. If xx is not a valid hexadecimal value, it is left intact: only the leading % is returned as-is, and xx characters will be processed in the next step (e.g. in uri.decodeUrl) as regular characters. Source Edit
- proc handleHexChar(c: char): int {.inline, ...raises: [], tags: [], forbids: [].} 
- Source Edit
- proc handleHexChar(c: char; x: var int): bool {.inline, ...raises: [], tags: [], forbids: [].} 
- 
    
    Converts %xx hexadecimal to the ordinal number and adds the result to x. Returns true if c is hexadecimal. When c is hexadecimal, the proc is equal to x = x shl 4 + hex2Int(c). Example: var x = 0 assert handleHexChar('a', x) assert x == 10 assert handleHexChar('B', x) assert x == 171 # 10 shl 4 + 11 assert not handleHexChar('?', x) assert x == 171 # unchanged Source Edit