Move stuff around; Add some missing overloads

This commit is contained in:
Zahary Karadjov 2020-05-05 23:57:27 +03:00
commit 65b43d9e38
No known key found for this signature in database
GPG key ID: C8936F8A3073D609
4 changed files with 50 additions and 36 deletions

View file

@ -316,31 +316,6 @@ template charsToBytes*(chars: openArray[char]): untyped =
var charsStart = unsafeAddr chars[0]
makeOpenArray(cast[ptr byte](charsStart), chars.len)
template implementWrites*(buffersParam: PageBuffers,
srcParam: pointer,
srcLenParam: Natural,
dstDesc: static string,
writeStartVar, writeLenVar,
writeBlock: untyped) =
let
buffers = buffersParam
writeStartVar = srcParam
writeLenVar = srcLenParam
template raiseError =
raise newException(IOError, "Failed to write all bytes to " & dstDesc)
if buffers != nil:
for writeStartVar, writeLenVar in consumePageBuffers(s.buffers):
let bytesWritten = writeBlock
# TODO: Can we repair the buffers here?
if bytesWritten != writeLenVar: raiseError()
if srcLen > 0:
fsAssert src != nil
let bytesWritten = writeBlock
if bytesWritten != writeLenVar: raiseError()
type
ReadFlag* = enum
partialReadIsEof