Skip to main content

smc/cmd/
mod.rs

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
19/// Parse all records from a session JSONL file.
20pub 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}