some more clean-up

This commit is contained in:
Salman Paracha 2025-08-10 23:15:36 -07:00
parent 3e107d935b
commit e503934df2

View file

@ -490,18 +490,27 @@ impl ProviderResponse for ChatCompletionsResponse {
} }
} }
// Implementation of TokenUsage for OpenAI Usage type // ============================================================================
impl TokenUsage for Usage { // PARAMETERIZED CONVERSIONS FOR PROVIDER FUNCTIONS
fn completion_tokens(&self) -> usize { // ============================================================================
self.completion_tokens as usize
}
fn prompt_tokens(&self) -> usize { use crate::providers::ProviderId;
self.prompt_tokens as usize
}
fn total_tokens(&self) -> usize { /// Parameterized conversion for ChatCompletionsRequest
self.total_tokens as usize impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsRequest {
type Error = OpenAIStreamError;
fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result<Self, Self::Error> {
serde_json::from_slice(bytes).map_err(OpenAIStreamError::from)
}
}
/// Parameterized conversion for ChatCompletionsResponse
impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsResponse {
type Error = OpenAIStreamError;
fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result<Self, Self::Error> {
serde_json::from_slice(bytes).map_err(OpenAIStreamError::from)
} }
} }
@ -532,6 +541,21 @@ impl ProviderStreamResponse for ChatCompletionsStreamResponse {
} }
} }
// Implementation of TokenUsage for OpenAI Usage type
impl TokenUsage for Usage {
fn completion_tokens(&self) -> usize {
self.completion_tokens as usize
}
fn prompt_tokens(&self) -> usize {
self.prompt_tokens as usize
}
fn total_tokens(&self) -> usize {
self.total_tokens as usize
}
}
// Error type for streaming operations // Error type for streaming operations
#[derive(Debug, thiserror::Error)] #[derive(Debug, thiserror::Error)]
pub enum OpenAIStreamError { pub enum OpenAIStreamError {
@ -607,29 +631,6 @@ where
// Just marking that this type implements the trait - no additional methods needed // Just marking that this type implements the trait - no additional methods needed
} }
// ============================================================================
// PARAMETERIZED CONVERSIONS FOR PROVIDER FUNCTIONS
// ============================================================================
use crate::providers::ProviderId;
/// Parameterized conversion for ChatCompletionsRequest
impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsRequest {
type Error = OpenAIStreamError;
fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result<Self, Self::Error> {
serde_json::from_slice(bytes).map_err(OpenAIStreamError::from)
}
}
/// Parameterized conversion for ChatCompletionsResponse
impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsResponse {
type Error = OpenAIStreamError;
fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result<Self, Self::Error> {
serde_json::from_slice(bytes).map_err(OpenAIStreamError::from)
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {