- 将 cli/ 目录合并到 client/ - InputEvent::Message 改为简单 String 类型,移除对 ChatMessage 的依赖 - cli 模块从 lib.rs 移除 - client/mod.rs 添加 mod channel 和 mod input 声明 - 添加设计文档 docs/plans/2026-04-26-client-refactor-design.md
41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
# 客户端代码整合设计
|
|
|
|
## 目标
|
|
|
|
将分散在 `src/cli/` 和 `src/client/` 的客户端代码整合到 `src/client/` 目录。
|
|
|
|
## 变更
|
|
|
|
### 目录结构
|
|
|
|
```
|
|
src/
|
|
├── client/ # 整合后的客户端模块
|
|
│ ├── mod.rs # 主程序入口 (run 函数)
|
|
│ ├── input.rs # InputHandler + InputCommand (从 cli/input.rs 合并)
|
|
│ └── channel.rs # CliChannel (从 cli/channel.rs 合并)
|
|
├── cli/ # 删除
|
|
└── protocol.rs # 保留
|
|
```
|
|
|
|
### 关键变更
|
|
|
|
| 变更 | 说明 |
|
|
|------|------|
|
|
| `InputEvent::Message(String)` | 简化为只携带文本内容,不再使用 `ChatMessage` |
|
|
| `cli` 模块删除 | 代码合并到 `client` |
|
|
| 解耦 | `client` 不再依赖 `bus::ChatMessage` |
|
|
|
|
## 实施步骤
|
|
|
|
1. 创建 `src/client/input.rs` - 从 `cli/input.rs` 合并,修改 `InputEvent::Message` 为 `String`
|
|
2. 创建 `src/client/channel.rs` - 从 `cli/channel.rs` 直接复制
|
|
3. 更新 `src/client/mod.rs` - 更新 import
|
|
4. 更新 `src/lib.rs` - 删除 `pub mod cli;`
|
|
5. 删除 `src/cli/` 目录
|
|
|
|
## 验证
|
|
|
|
- `cargo build` 通过
|
|
- 功能保持不变
|