1pub mod search;
2pub mod sessions;
3pub mod show;
4pub mod tools;
5pub mod export;
6pub mod context;
7pub mod stats;
8pub mod projects;
9pub mod freq;
10pub mod recent;
11
12use std::io::BufRead;
13
14use anyhow::Result;
15
16use crate::models::Record;
17use crate::util::discover::SessionFile;
18
19pub fn parse_records(file: &SessionFile) -> Result<Vec<Record>> {
21 let f = std::fs::File::open(&file.path)?;
22 let reader = std::io::BufReader::new(f);
23 let mut records = Vec::new();
24
25 for line in reader.lines() {
26 let line = line?;
27 if line.trim().is_empty() {
28 continue;
29 }
30 if let Ok(record) = serde_json::from_str::<Record>(&line) {
31 records.push(record);
32 }
33 }
34
35 Ok(records)
36}