snm_brightdata_client/
rpc_client.rs1use crate::types::{ToolCallRequest, ToolCallResponse};
4use crate::error::BrightDataError;
5use crate::tool::Tool;
6use serde_json::Value;
7
8pub struct RpcClient;
9
10impl RpcClient {
11 pub async fn call_tool(tool_name: &str, parameters: Value) -> Result<Value, BrightDataError> {
13 match tool_name {
14 "scrape_website" => {
15 crate::tools::scrape::ScrapeMarkdown
16 .execute_legacy(parameters)
17 .await
18 }
19 "search_web" => {
20 crate::tools::search::SearchEngine
21 .execute_legacy(parameters)
22 .await
23 }
24 "extract_data" => {
25 crate::tools::extract::Extractor
26 .execute_legacy(parameters)
27 .await
28 }
29 "take_screenshot" => {
30 crate::tools::screenshot::ScreenshotTool
31 .execute_legacy(parameters)
32 .await
33 }
34 _ => Err(BrightDataError::ToolError(format!(
35 "Unknown tool: {}",
36 tool_name
37 ))),
38 }
39 }
40}