From 74150d16b09dd87a261de1afb7a5b29afa4e43c9 Mon Sep 17 00:00:00 2001 From: Andre Bandarra Date: Fri, 12 Jul 2024 16:49:26 +0100 Subject: [PATCH] Makes all usageMetadata fields optional --- src/types/generate_content.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/types/generate_content.rs b/src/types/generate_content.rs index 9ad3efa..4547faa 100644 --- a/src/types/generate_content.rs +++ b/src/types/generate_content.rs @@ -97,8 +97,8 @@ pub struct SafetyRating { #[serde(rename_all = "camelCase")] pub struct UsageMetadata { pub candidates_token_count: Option, - pub prompt_token_count: u32, - pub total_token_count: u32, + pub prompt_token_count: Option, + pub total_token_count: Option, } #[derive(Clone, Debug, Serialize, Deserialize)] @@ -163,7 +163,13 @@ impl GenerateContentResponse { #[cfg(test)] mod tests { - use super::GenerateContentResponse; + use super::{GenerateContentResponse, GenerateContentResponseResult}; + + #[test] + pub fn parses_empty_metadata_response() { + let input = r#"{"candidates": [{"content": {"role": "model","parts": [{"text": "-"}]}}],"usageMetadata": {}}"#; + serde_json::from_str::(input).unwrap(); + } #[test] pub fn parses_max_tokens_response() {