blob: c88f271c30d2dec8b5ec96c5062b9b64a26f5686 [file] [log] [blame]
Rich Lane872b95a2013-06-17 18:39:14 -07001OFReader = {}
2OFReader.new = function(buf, offset)
3 local self = {}
4 offset = offset or 0
5
6 self.read = function(len)
7 local r = buf(offset, len)
8 offset = offset + len
9 return r
10 end
11
12 self.read_all = function()
13 local r = buf(offset, buf.len() - offset)
14 offset = buf.len()
15 return r
16 end
17
18 self.peek = function(off, len)
19 return buf(offset + off, len)
20 end
21
22 self.skip = function(len)
23 offset = offset + len
24 end
25
26 self.is_empty = function()
27 return offset == buf:len()
28 end
29
30 self.slice = function(len)
31 r = OFReader.new(buf(offset, len))
32 offset = offset + len
33 return r
34 end
35
36 return self
37end