Make readBytes and writeBytes work with uint8

So far only openarray[int8] worked. Now it's openarray[int8|uint8]. This
should make sense, since uint8 is comfortable to represent a byte
(0-255) and there is already type byte* = uint8 in system.
This commit is contained in:
def
2015-02-18 21:13:01 +01:00
parent 358d4b958c
commit ecfaab68f1
2 changed files with 4 additions and 4 deletions

View File

@@ -2457,7 +2457,7 @@ when not defined(JS): #and not defined(NimrodVM):
proc getFileSize*(f: File): int64 {.tags: [ReadIOEffect], benign.}
## retrieves the file size (in bytes) of `f`.
proc readBytes*(f: File, a: var openArray[int8], start, len: int): int {.
proc readBytes*(f: File, a: var openArray[int8|uint8], start, len: int): int {.
tags: [ReadIOEffect], benign.}
## reads `len` bytes into the buffer `a` starting at ``a[start]``. Returns
## the actual number of bytes that have been read which may be less than
@@ -2475,7 +2475,7 @@ when not defined(JS): #and not defined(NimrodVM):
## the actual number of bytes that have been read which may be less than
## `len` (if not as many bytes are remaining), but not greater.
proc writeBytes*(f: File, a: openArray[int8], start, len: int): int {.
proc writeBytes*(f: File, a: openArray[int8|uint8], start, len: int): int {.
tags: [WriteIOEffect], benign.}
## writes the bytes of ``a[start..start+len-1]`` to the file `f`. Returns
## the number of actual written bytes, which may be less than `len` in case

View File

@@ -246,14 +246,14 @@ proc fwrite(buf: pointer, size, n: int, f: File): int {.
proc readBuffer(f: File, buffer: pointer, len: int): int =
result = fread(buffer, 1, len, f)
proc readBytes(f: File, a: var openArray[int8], start, len: int): int =
proc readBytes(f: File, a: var openArray[int8|uint8], start, len: int): int =
result = readBuffer(f, addr(a[start]), len)
proc readChars(f: File, a: var openArray[char], start, len: int): int =
result = readBuffer(f, addr(a[start]), len)
{.push stackTrace:off, profiler:off.}
proc writeBytes(f: File, a: openArray[int8], start, len: int): int =
proc writeBytes(f: File, a: openArray[int8|uint8], start, len: int): int =
var x = cast[ptr array[0..1000_000_000, int8]](a)
result = writeBuffer(f, addr(x[start]), len)
proc writeChars(f: File, a: openArray[char], start, len: int): int =