123456789101112131415161718192021222324252627282930313233343536 |
- 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
- when defined(gcRefc):
- 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(@[])
|