sourceatlas 0.2.2

Analyze source code repositories and generate project statistics
pub struct FileStats {
    pub(crate) total_lines: usize,
}

impl FileStats {
    pub fn new(source: &str) -> Self {
        Self {
            total_lines: count_file_lines(source),
        }
    }
}

fn count_file_lines(source: &str) -> usize {
    source.lines().count()
}

#[cfg(test)]
mod tests {

    use super::*;

    const TEST_SOURCE: &str = r#"fn main() {
        let first_name = "John";
        // TODO: add last name

    }"#;

    #[test]
    fn counts_lines() {
        assert_eq!(5, count_file_lines(TEST_SOURCE))
    }
}