mcp_core_fishcode2025/
tool.rs1use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
8#[serde(rename_all = "camelCase")]
9pub struct Tool {
10 pub name: String,
12 pub description: String,
14 pub input_schema: Value,
16}
17
18impl Tool {
19 pub fn new<N, D>(name: N, description: D, input_schema: Value) -> Self
21 where
22 N: Into<String>,
23 D: Into<String>,
24 {
25 Tool {
26 name: name.into(),
27 description: description.into(),
28 input_schema,
29 }
30 }
31}
32
33#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
35#[serde(rename_all = "camelCase")]
36pub struct ToolCall {
37 pub name: String,
39 pub arguments: Value,
41}
42
43impl ToolCall {
44 pub fn new<S: Into<String>>(name: S, arguments: Value) -> Self {
46 Self {
47 name: name.into(),
48 arguments,
49 }
50 }
51}