pub struct OutputStream {
lines: Vec<String>,
max_lines: usize,
}
impl OutputStream {
pub fn new(max_lines: usize) -> Self {
Self {
lines: Vec::new(),
max_lines,
}
}
pub fn feed(&mut self, line: impl Into<String>) -> bool {
if self.lines.len() < self.max_lines {
self.lines.push(line.into());
true
} else {
false
}
}
pub fn finish(self) -> Vec<String> {
self.lines
}
}