#[async_trait::async_trait]
pub trait CommandHandler: Send + Sync + 'static {
fn adapter_name(&self) -> &str;
async fn spawn_actor(
&self,
actor_type: &str,
actor_name: &str,
args: &[u8],
) -> Result<String, String>;
async fn tell_actor(
&self,
actor_name: &str,
message_type: &str,
payload: &[u8],
) -> Result<(), String>;
async fn ask_actor(
&self,
actor_name: &str,
message_type: &str,
payload: &[u8],
timeout_ms: u64,
) -> Result<Vec<u8>, String>;
async fn stop_actor(&self, actor_name: &str) -> Result<(), String>;
async fn watch_actor(&self, watcher_name: &str, target_name: &str) -> Result<(), String> {
let _ = (watcher_name, target_name);
Err("watch not supported".into())
}
fn actor_count(&self) -> u32 {
0
}
}