pub struct Tool {
pub function_declarations: Option<Vec<FunctionDeclaration>>,
pub url_context: Option<UrlContext>,
pub google_search: Option<GoogleSearch>,
pub code_execution: Option<ToolCodeExecution>,
pub google_search_retrieval: Option<GoogleSearchRetrieval>,
}Expand description
A tool declaration sent in the setup message. Each Tool object can contain one of: function declarations, urlContext, googleSearch, codeExecution, or googleSearchRetrieval.
Fields§
§function_declarations: Option<Vec<FunctionDeclaration>>Function declarations for this tool.
url_context: Option<UrlContext>URL context tool (web content fetching).
google_search: Option<GoogleSearch>Google Search tool (grounded search).
code_execution: Option<ToolCodeExecution>Code execution tool.
google_search_retrieval: Option<GoogleSearchRetrieval>Google Search retrieval tool.
Implementations§
Source§impl Tool
impl Tool
Sourcepub fn functions(declarations: Vec<FunctionDeclaration>) -> Self
pub fn functions(declarations: Vec<FunctionDeclaration>) -> Self
Create a tool with function declarations.
§Examples
use gemini_genai_rs::protocol::types::{Tool, FunctionDeclaration};
let tool = Tool::functions(vec![FunctionDeclaration {
name: "search".to_string(),
description: "Search the web".to_string(),
parameters: None,
behavior: None,
}]);Sourcepub fn url_context() -> Self
pub fn url_context() -> Self
Create a URL context tool (enables the model to fetch and use web content).
Sourcepub fn google_search() -> Self
pub fn google_search() -> Self
Create a Google Search tool (enables grounded search).
Sourcepub fn code_execution() -> Self
pub fn code_execution() -> Self
Create a code execution tool.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Tool
impl<'de> Deserialize<'de> for Tool
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Tool
Auto Trait Implementations§
impl Freeze for Tool
impl RefUnwindSafe for Tool
impl Send for Tool
impl Sync for Tool
impl Unpin for Tool
impl UnwindSafe for Tool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more