ai-providers 0.0.1

A comprehensive collection of AI provider implementations, schematics, and API integrations for various AI services
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct InputTokensDetails {
    pub cached_tokens: usize,
}

#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct OutputTokensDetails {
    pub reasoning_tokens: usize,
}

#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct Usage {
    pub input_tokens: usize,
    pub input_tokens_details: InputTokensDetails,
    pub output_tokens: usize,
    pub output_tokens_details: OutputTokensDetails,
    pub total_tokens: usize,
}

impl Usage {
    pub fn new(
        input_tokens: usize,
        input_tokens_details: InputTokensDetails,
        output_tokens: usize,
        output_tokens_details: OutputTokensDetails,
        total_tokens: usize,
    ) -> Self {
        Self {
            input_tokens,
            input_tokens_details,
            output_tokens,
            output_tokens_details,
            total_tokens,
        }
    }
}