Skip to main content

Module output

Module output 

Source
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§

JsonFormatter
JSON formatter for machine-readable output
TableFormatter
Table formatter for human-readable output

Traits§

OutputFormatter
Trait for output formatters

Functions§

get_formatter
Get appropriate formatter based on JSON flag