anyclaw_sdk_agent/
generic.rs1use crate::adapter::AgentAdapter;
2
3#[derive(Debug, Default, Clone)]
7pub struct GenericAcpAdapter;
8
9impl AgentAdapter for GenericAcpAdapter {}
10
11#[cfg(test)]
12mod tests {
13 use super::*;
14 use crate::{AgentAdapter, DynAgentAdapter};
15 use anyclaw_sdk_types::{ClientCapabilities, InitializeParams};
16 use rstest::rstest;
17
18 #[rstest]
19 #[test]
20 fn when_generic_adapter_default_constructed_then_it_can_be_cloned_and_debugged() {
21 let adapter = GenericAcpAdapter;
22 let cloned = adapter.clone();
23
24 assert_eq!(format!("{adapter:?}"), format!("{cloned:?}"));
25 }
26
27 #[rstest]
28 #[test]
29 fn when_generic_adapter_boxed_as_dyn_agent_adapter_then_dyn_dispatch_is_available() {
30 let _: Box<dyn DynAgentAdapter> = Box::new(GenericAcpAdapter);
31 }
32
33 #[rstest]
34 #[tokio::test]
35 async fn when_generic_adapter_on_initialize_params_called_from_own_module_then_passthrough() {
36 let adapter = GenericAcpAdapter;
37 let input = InitializeParams {
38 protocol_version: 1,
39 capabilities: ClientCapabilities { experimental: None },
40 options: None,
41 meta: None,
42 };
43
44 let output = AgentAdapter::on_initialize_params(&adapter, input.clone())
45 .await
46 .unwrap();
47
48 assert_eq!(output, input);
49 }
50}