From 8d6c5ef6af551329dcc6dbe64ed47e408769e5d1 Mon Sep 17 00:00:00 2001 From: Yingjie He Date: Mon, 28 Apr 2025 16:46:39 -0700 Subject: [PATCH] fix: expose ollama error (#2378) --- crates/goose/src/providers/errors.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/crates/goose/src/providers/errors.rs b/crates/goose/src/providers/errors.rs index 9d7b646216..c9f867c41f 100644 --- a/crates/goose/src/providers/errors.rs +++ b/crates/goose/src/providers/errors.rs @@ -93,11 +93,11 @@ where struct CodeVisitor; - impl Visitor<'_> for CodeVisitor { + impl<'de> Visitor<'de> for CodeVisitor { type Value = Option; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str("a string or a number for the code field") + formatter.write_str("a string, a number, null, or none for the code field") } fn visit_str(self, value: &str) -> Result @@ -120,9 +120,23 @@ where { Ok(None) } + + fn visit_unit(self) -> Result + where + E: de::Error, + { + Ok(None) + } + + fn visit_some(self, deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + deserializer.deserialize_any(CodeVisitor) + } } - deserializer.deserialize_any(CodeVisitor) + deserializer.deserialize_option(CodeVisitor) } impl OpenAIError {