Initial upload: GitPulse - Developer Productivity Analyzer CLI tool
Some checks failed
CI / test (push) Has been cancelled
CI / release (push) Has been cancelled

This commit is contained in:
2026-02-04 15:45:40 +00:00
parent 17ecaa2f2c
commit 7b634ac1b0

34
src/export/json.rs Normal file
View File

@@ -0,0 +1,34 @@
use crate::models::AnalysisResult;
use anyhow::{Context, Result};
use serde_json;
use std::fs::File;
use std::io::Write;
use std::path::PathBuf;
pub fn export_json(result: &AnalysisResult, output: Option<PathBuf>) -> Result<()> {
let json = serde_json::to_string_pretty(result)
.context("Failed to serialize to JSON")?;
if let Some(path) = output {
let mut file = File::create(&path).context("Failed to create output file")?;
file.write_all(json.as_bytes())
.context("Failed to write to output file")?;
} else {
println!("{}", json);
}
Ok(())
}
pub fn export_json_compact(result: &AnalysisResult, output: Option<PathBuf>) -> Result<()> {
let json = serde_json::to_string(result)
.context("Failed to serialize to JSON")?;
if let Some(path) = output {
let mut file = File::create(&path).context("Failed to create output file")?;
file.write_all(json.as_bytes())
.context("Failed to write to output file")?;
} else {
println!("{}", json);
}
Ok(())
}