Skip to main content

code_gen/statement/
empty_line.rs

1use crate::{CodeBuffer, Statement};
2
3/// An empty line of code. (indent & line-ending)
4#[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug, Default)]
5pub struct EmptyLine {
6    _nothing: (),
7}
8
9impl Statement for EmptyLine {
10    fn write(&self, b: &mut CodeBuffer, level: usize) {
11        b.line(level, "");
12    }
13}
14
15#[cfg(test)]
16mod tests {
17    use super::*;
18
19    #[test]
20    fn empty_line_at_level_0() {
21        assert_eq!(EmptyLine::default().to_code(), "\n");
22    }
23
24    #[test]
25    fn empty_line_at_level_1() {
26        let mut b = CodeBuffer::default();
27        EmptyLine::default().write(&mut b, 1);
28        assert_eq!(b.peek(), "    \n");
29    }
30}