Skip to main content

markedit/rewriters/
writer.rs

1use pulldown_cmark::Event;
2use std::collections::VecDeque;
3
4#[allow(unused_imports)] // for rustdoc
5use crate::Rewriter;
6
7/// The output buffer given to [`Rewriter::rewrite_event()`].
8#[derive(Debug)]
9pub struct Writer<'a> {
10    pub(crate) buffer: VecDeque<Event<'a>>,
11}
12
13impl<'a> Writer<'a> {
14    pub(crate) fn new() -> Writer<'a> {
15        Writer {
16            buffer: VecDeque::new(),
17        }
18    }
19
20    /// Queue an [`Event`] to be emitted.
21    pub fn push(&mut self, event: Event<'a>) { self.buffer.push_back(event); }
22}
23
24impl<'a> Extend<Event<'a>> for Writer<'a> {
25    fn extend<I: IntoIterator<Item = Event<'a>>>(&mut self, iter: I) {
26        self.buffer.extend(iter);
27    }
28}