Add a useful debug helper
This commit is contained in:
parent
cb54254b77
commit
aaff7fac31
1 changed files with 8 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ import
|
||||||
|
|
||||||
const
|
const
|
||||||
pageSize = 4096
|
pageSize = 4096
|
||||||
|
debugHelpers = false
|
||||||
|
|
||||||
type
|
type
|
||||||
StreamReader = proc (bufferStart: ptr byte, bufferSize: int): int
|
StreamReader = proc (bufferStart: ptr byte, bufferSize: int): int
|
||||||
|
|
@ -29,6 +30,8 @@ type
|
||||||
proc openFile*(filename: string): ByteStream =
|
proc openFile*(filename: string): ByteStream =
|
||||||
var memFile = memfiles.open(filename)
|
var memFile = memfiles.open(filename)
|
||||||
result.head = cast[ptr byte](memFile.mem)
|
result.head = cast[ptr byte](memFile.mem)
|
||||||
|
when debugHelpers:
|
||||||
|
result.bufferStart = result.head
|
||||||
result.bufferEnd = result.head.shift memFile.size
|
result.bufferEnd = result.head.shift memFile.size
|
||||||
result.bufferEndPos = memFile.size
|
result.bufferEndPos = memFile.size
|
||||||
result.closeStream = proc = close memFile
|
result.closeStream = proc = close memFile
|
||||||
|
|
@ -81,6 +84,11 @@ proc peek*(s: ByteStream): byte {.inline.} =
|
||||||
assert s.head != s.bufferEnd
|
assert s.head != s.bufferEnd
|
||||||
return s.head[]
|
return s.head[]
|
||||||
|
|
||||||
|
when debugHelpers:
|
||||||
|
proc showPosition*(s: ByteStream) =
|
||||||
|
echo "head at ", distance(s.bufferStart, s.head), "/",
|
||||||
|
distance(s.bufferStart, s.bufferEnd)
|
||||||
|
|
||||||
proc advance*(s: var ByteStream) =
|
proc advance*(s: var ByteStream) =
|
||||||
if s.head != s.bufferEnd:
|
if s.head != s.bufferEnd:
|
||||||
s.head = s.head.shift 1
|
s.head = s.head.shift 1
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue