//! 客户端发现接口 use async_trait::async_trait; use bat_core::domain::{GameClient, GameRegion}; /// 客户端发现接口 /// /// 在系统中自动发现已安装的游戏客户端 #[async_trait] pub trait ClientDiscovery: Send + Sync { /// 发现所有客户端 /// /// 在系统的常见位置搜索游戏客户端 /// /// # 返回 /// /// - 成功:返回找到的客户端列表 /// - 失败:返回错误 async fn discover_all(&self) -> Result, String>; /// 验证客户端 /// /// 验证给定路径是否是有效的游戏客户端 /// /// # 参数 /// /// - `path`: 客户端路径 /// /// # 返回 /// /// - true: 是有效的客户端 /// - false: 不是有效的客户端 async fn verify_client(&self, path: &str) -> bool; /// 检测客户端区域 /// /// 根据客户端文件特征检测区域 /// /// # 参数 /// /// - `path`: 客户端路径 /// /// # 返回 /// /// - 成功:返回区域 /// - 失败:返回错误 async fn detect_region(&self, path: &str) -> Result; } #[cfg(test)] mod tests { // 测试将在实现时添加 }