Skip to main content

rab/tui/components/
spacer.rs

1use crate::tui::Component;
2
3/// Empty vertical space.
4pub struct Spacer {
5    lines: usize,
6}
7
8impl Spacer {
9    pub fn new(lines: usize) -> Self {
10        Self { lines }
11    }
12
13    pub fn set_lines(&mut self, lines: usize) {
14        self.lines = lines;
15    }
16}
17
18impl Component for Spacer {
19    /// Pi: returns `[""]` (empty strings, not padded spaces)
20    fn render(&self, _width: usize) -> Vec<String> {
21        vec![String::new(); self.lines]
22    }
23}
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn test_spacer() {
31        let spacer = Spacer::new(3);
32        let lines = spacer.render(10);
33        assert_eq!(lines.len(), 3);
34        // Pi: spacer returns empty strings
35        for line in &lines {
36            assert_eq!(line, "");
37        }
38    }
39}