Struct Tool
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§
§impl Tool
impl Tool
pub fn functions(declarations: Vec<FunctionDeclaration>) -> Tool
pub fn functions(declarations: Vec<FunctionDeclaration>) -> Tool
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,
}]);pub fn url_context() -> Tool
pub fn url_context() -> Tool
Create a URL context tool (enables the model to fetch and use web content).
pub fn google_search() -> Tool
pub fn google_search() -> Tool
Create a Google Search tool (enables grounded search).
pub fn code_execution() -> Tool
pub fn code_execution() -> Tool
Create a code execution tool.
Trait Implementations§
§impl<'de> Deserialize<'de> for Tool
impl<'de> Deserialize<'de> for Tool
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Tool, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Tool, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
§impl Serialize for Tool
impl Serialize for Tool
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. 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