#[derive(Debug, Clone)]
pub struct RenderedFile {
pub lines: Vec<String>,
pub width: usize
}
impl RenderedFile {
#[inline]
pub const fn line_count(&self) -> usize {
self.lines.len()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_line_count() {
let mut rendered = RenderedFile {
lines: Vec::new(),
width: 40
};
assert_eq!(rendered.line_count(), 0);
rendered.lines.push("line1".to_string());
assert_eq!(rendered.line_count(), 1);
rendered.lines.push("line2".to_string());
assert_eq!(rendered.line_count(), 2);
}
#[test]
fn test_clone() {
let original = RenderedFile {
lines: vec!["test".to_string()],
width: 50
};
let cloned = original.clone();
assert_eq!(cloned.line_count(), 1);
assert_eq!(cloned.width, 50);
}
}