Codex Rust 分发技能:用泛型或 dyn Trait 表达不同格式化器
EnglishCodex 安装步骤
- 从固定 GitHub 提交复制 `.codex/skills/rust-zero-cost/` 完整目录到项目 `.agents/skills/rust-zero-cost/`。
- 在 Codex 说明类型是在编译时还是运行时确定,先检查 trait 是否兼容 `dyn`。
中文摘要
比较静态与动态分发的类型约束,用可编译的本地示例决定何时需要异构集合。
SKILL.md 中文导读
可复现示例
本地写 `LabelFormatter`,实现大写和原样两种输出。先为已知类型调用泛型函数,再用 `Vec<Box<dyn LabelFormatter>>` 存两种实现。工作步骤
- 为固定类型调用设计泛型版本,再为异构集合定义统一接口。
- 用本地测试核对两种实现输出。性能敏感时记录实测数据。
验收方法
两种格式化器在同一集合能按各自实现运行,测试同时保留静态调用结果。
GitHub 原文 · 更新日期
适用环境
需要本地 Rust 项目、Cargo 和目标 trait 及其实现。
常见问题
泛型版本肯定更快吗?
需要看实际调用路径、代码体积和分配情况。性能结论应来自与生产场景相近的测量。