mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-06 04:57:49 +00:00
36 lines
635 B
Nim
36 lines
635 B
Nim
discard """
|
|
action: compile
|
|
"""
|
|
|
|
type
|
|
Byte* = uint8
|
|
Bytes* = seq[Byte]
|
|
|
|
BytesRange* = object
|
|
bytes: Bytes
|
|
ibegin, iend: int
|
|
|
|
proc initBytesRange*(s: var Bytes, ibegin = 0, iend = -1): BytesRange =
|
|
let e = if iend < 0: s.len + iend + 1
|
|
else: iend
|
|
assert ibegin >= 0 and e <= s.len
|
|
|
|
shallow(s)
|
|
result.bytes = s
|
|
result.ibegin = ibegin
|
|
result.iend = e
|
|
|
|
converter fromSeq*(s: Bytes): BytesRange =
|
|
var seqCopy = s
|
|
return initBytesRange(seqCopy)
|
|
|
|
type
|
|
Reader* = object
|
|
data: BytesRange
|
|
position: int
|
|
|
|
proc readerFromBytes*(input: BytesRange): Reader =
|
|
discard
|
|
|
|
let r = readerFromBytes(@[])
|