claude_code_sdk/transport/
mod.rs1use futures::Stream;
4use std::collections::HashMap;
5use std::pin::Pin;
6use crate::errors::ClaudeSDKError;
7
8pub mod subprocess_cli;
9
10#[async_trait::async_trait]
12pub trait Transport {
13 async fn connect(&mut self) -> Result<(), ClaudeSDKError>;
15
16 async fn disconnect(&mut self) -> Result<(), ClaudeSDKError>;
18
19 #[allow(dead_code)]
21 async fn send_request(
22 &mut self,
23 _messages: Vec<HashMap<String, serde_json::Value>>,
24 _options: HashMap<String, serde_json::Value>,
25 ) -> Result<(), ClaudeSDKError> {
26 Ok(())
27 }
28
29 fn receive_messages(&mut self) -> Pin<Box<dyn Stream<Item = Result<HashMap<String, serde_json::Value>, ClaudeSDKError>> + Send + '_>>;
31
32 #[allow(dead_code)]
34 fn is_connected(&self) -> bool;
35}