Merge pull request #646 from onionhammer/patch-1
Added base64 encode overload for arrays of integers/bytes
This commit is contained in:
commit
2a1f8baac4
1 changed files with 126 additions and 116 deletions
|
|
@ -12,7 +12,7 @@
|
||||||
const
|
const
|
||||||
cb64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
cb64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||||
|
|
||||||
proc encode*(s: string, lineLen = 75, newLine="\13\10"): string =
|
template encodeInternal(s: expr, lineLen: int, newLine: string): stmt {.immediate.} =
|
||||||
## encodes `s` into base64 representation. After `lineLen` characters, a
|
## encodes `s` into base64 representation. After `lineLen` characters, a
|
||||||
## `newline` is added.
|
## `newline` is added.
|
||||||
var total = ((len(s) + 2) div 3) * 4
|
var total = ((len(s) + 2) div 3) * 4
|
||||||
|
|
@ -60,6 +60,16 @@ proc encode*(s: string, lineLen = 75, newLine="\13\10"): string =
|
||||||
else:
|
else:
|
||||||
assert(r == result.len)
|
assert(r == result.len)
|
||||||
|
|
||||||
|
proc encode*[T:TInteger|char](s: openarray[T], lineLen = 75, newLine="\13\10"): string =
|
||||||
|
## encodes `s` into base64 representation. After `lineLen` characters, a
|
||||||
|
## `newline` is added.
|
||||||
|
encodeInternal(s, lineLen, newLine)
|
||||||
|
|
||||||
|
proc encode*(s: string, lineLen = 75, newLine="\13\10"): string =
|
||||||
|
## encodes `s` into base64 representation. After `lineLen` characters, a
|
||||||
|
## `newline` is added.
|
||||||
|
encodeInternal(s, lineLen, newLine)
|
||||||
|
|
||||||
proc decodeByte(b: char): int {.inline.} =
|
proc decodeByte(b: char): int {.inline.} =
|
||||||
case b
|
case b
|
||||||
of '+': result = ord('>')
|
of '+': result = ord('>')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue