async_openai/types/mcp/
impls.rs

1use crate::types::mcp::{
2    MCPToolAllowedTools, MCPToolApprovalFilter, MCPToolApprovalSetting, MCPToolFilter,
3    MCPToolRequireApproval,
4};
5
6// MCPToolRequireApproval ergonomics
7
8impl From<MCPToolApprovalSetting> for MCPToolRequireApproval {
9    fn from(setting: MCPToolApprovalSetting) -> Self {
10        MCPToolRequireApproval::ApprovalSetting(setting)
11    }
12}
13
14impl From<MCPToolApprovalFilter> for MCPToolRequireApproval {
15    fn from(filter: MCPToolApprovalFilter) -> Self {
16        MCPToolRequireApproval::Filter(filter)
17    }
18}
19
20// MCPToolAllowedTools ergonomics
21
22impl From<MCPToolFilter> for MCPToolAllowedTools {
23    fn from(filter: MCPToolFilter) -> Self {
24        MCPToolAllowedTools::Filter(filter)
25    }
26}
27
28impl From<Vec<String>> for MCPToolAllowedTools {
29    fn from(tools: Vec<String>) -> Self {
30        MCPToolAllowedTools::List(tools)
31    }
32}
33
34impl From<Vec<&str>> for MCPToolAllowedTools {
35    fn from(tools: Vec<&str>) -> Self {
36        MCPToolAllowedTools::List(tools.into_iter().map(|s| s.to_string()).collect())
37    }
38}
39
40impl From<&[&str]> for MCPToolAllowedTools {
41    fn from(tools: &[&str]) -> Self {
42        MCPToolAllowedTools::List(tools.iter().map(|s| s.to_string()).collect())
43    }
44}
45
46impl<const N: usize> From<[&str; N]> for MCPToolAllowedTools {
47    fn from(tools: [&str; N]) -> Self {
48        MCPToolAllowedTools::List(tools.iter().map(|s| s.to_string()).collect())
49    }
50}
51
52impl From<&Vec<String>> for MCPToolAllowedTools {
53    fn from(tools: &Vec<String>) -> Self {
54        MCPToolAllowedTools::List(tools.clone())
55    }
56}
57
58impl From<&Vec<&str>> for MCPToolAllowedTools {
59    fn from(tools: &Vec<&str>) -> Self {
60        MCPToolAllowedTools::List(tools.iter().map(|s| s.to_string()).collect())
61    }
62}
63
64impl From<&str> for MCPToolAllowedTools {
65    fn from(tool: &str) -> Self {
66        MCPToolAllowedTools::List(vec![tool.to_string()])
67    }
68}
69
70impl From<String> for MCPToolAllowedTools {
71    fn from(tool: String) -> Self {
72        MCPToolAllowedTools::List(vec![tool])
73    }
74}