用途:在编辑 Copilot Rust SDK(rust/)中的 *.rs 文件时,按该技能给出的规范编写地道、高效、结构良好的 Rust 代码。优先级为可读性、正确性(尤其并发/异步)、性能(关注分配、数据结构与热路径)。
主要能力与约定:错误处理统一使用 crate::Error 与 crate::ErrorKind,库代码不用 anyhow(仅限二进制与示例),生产代码优先 ?、let-else、if let,unwrap() 仅限测试;异步默认 async fn + .await,仅在确需后台工作时用 tokio::spawn 并跟踪 JoinHandle,阻塞调用放入 spawn_blocking;锁选择上跨 .await 用 tokio::sync::Mutex,热同步路径用 parking_lot,惰性静态用 std::sync::LazyLock。扩展点采用带默认实现方法的 trait(SessionHandler、SessionHooks、SystemMessageTransform、ToolHandler),事件流用 channel 而非回调闭包,公开 API 优先返回 impl Stream。可选字段用 Option<T>,公开配置结构加 #[non_exhaustive] 与 builder;serde 用 camelCase 重命名、skip_serializing_if 与 default。禁用 #[tracing::instrument],改用 error_span! 与 .instrument(),禁止跨 .await 持有 span.enter()。测试不做 mock,断言 actual 在前,测试置于文件末尾。跨平台用 Path::join、path.display(),Windows 注意 CREATE_NO_WINDOW 与 \r。构建显式指定 Tokio features,用 cargo check 迭代。
使用方式:按 rust/rust-toolchain.toml 固定 rust 1.94.0,格式化用 nightly-2026-04-14;提交前本地运行 cd rust && cargo +nightly-2026-04-14 fmt --check、cargo clippy --all-features --all-targets -- -D warnings、cargo test --all-features。生成代码位于 rust/src/generated/,不得手改,用 cd scripts/codegen && npm run generate:rust 重新生成。
适用场景与限制:适用于该 SDK 仓库内的 Rust 开发与评审;属于项目内部规范,不适用于其他 Rust 项目。具体收费、平台支持范围等资料暂未提供。