swf_parser/
stream_buffer.rs1pub trait StreamBuffer {
5 fn new() -> Self;
6
7 fn write(&mut self, unparsed_bytes: &[u8]);
9
10 fn get(&self) -> &[u8];
12
13 fn clear(&mut self, parsed_size: usize);
15}
16
17pub struct FlatBuffer {
19 parsed: usize,
20 inner: Vec<u8>,
21}
22
23impl FlatBuffer {}
24
25impl StreamBuffer for FlatBuffer {
26 fn new() -> Self {
27 Self {
28 parsed: 0,
29 inner: Vec::new(),
30 }
31 }
32
33 fn write(&mut self, unparsed_bytes: &[u8]) {
34 self.inner.extend_from_slice(unparsed_bytes)
35 }
36
37 fn get(&self) -> &[u8] {
38 &self.inner[self.parsed..]
39 }
40
41 fn clear(&mut self, parsed_size: usize) {
42 self.parsed += parsed_size;
43 }
44}
45
46