Expand description
Output formatting module for ccstat
This module provides formatters for displaying usage data in different formats:
- Table format for human-readable terminal output
- JSON format for machine-readable output and integration with other tools
§Examples
use ccstat_terminal::output::get_formatter;
use ccstat_core::aggregation_types::{DailyUsage, Totals};
use ccstat_core::types::{DailyDate, TokenCounts};
use chrono::NaiveDate;
let daily_data = vec![
DailyUsage {
date: DailyDate::new(NaiveDate::from_ymd_opt(2024, 1, 1).unwrap()),
tokens: TokenCounts::new(1000, 500, 100, 50),
total_cost: 0.025,
models_used: vec!["claude-3-opus".to_string()],
entries: None,
},
];
let totals = Totals::from_daily(&daily_data);
// Get table formatter for human-readable output
let formatter = get_formatter(false, false);
println!("{}", formatter.format_daily(&daily_data, &totals));
// Get JSON formatter for machine-readable output
let json_formatter = get_formatter(true, false);
println!("{}", json_formatter.format_daily(&daily_data, &totals));Structs§
- Json
Formatter - JSON formatter for machine-readable output
- Table
Formatter - Table formatter for human-readable output
Traits§
- Output
Formatter - Trait for output formatters
Functions§
- get_
formatter - Get appropriate formatter based on JSON flag