rust-macro-patterns
Rust宏开发模式包括过程宏、派生宏、属性宏和声明宏。在实现代码生成、自定义派生、属性语法或编译时元编程时使用。触发短语包括“derive macro”、“proc macro”、“attribute macro”、“macro_rules”、“quote!”、“syn”或“TokenStream”。
把 Skill 的源码、资源快照、README、包体和安装信号放进一个可搜索、可筛选的公开目录。
Rust宏开发模式包括过程宏、派生宏、属性宏和声明宏。在实现代码生成、自定义派生、属性语法或编译时元编程时使用。触发短语包括“derive macro”、“proc macro”、“attribute macro”、“macro_rules”、“quote!”、“syn”或“TokenStream”。
使用rustfmt、clippy、cargo check和安全检查来验证Rust代码质量
使用PyO3桥接Rust和Python,正确处理GIL并兼容异步。在集成Python机器学习模型或库时使用。
何时:Rust项目审查、所有权/借用、错误处理、不安全代码、性能 什么:所有权模式 + 生命周期分析 + 错误处理(Result/Option)+ 不安全代码审核 + 符合Rust习惯的写法 何时不适用:Rust API → rust-api-reviewer, Go → go-reviewer
编写正确、清晰的测试,用明确的断言来验证有效和无效的输入
全面的Rust测试策略,包括使用proptest进行基于属性的测试、使用cargo-fuzz进行模糊测试、使用Criterion进行基准测试、针对trait的契约测试以及使用Miri检测未定义行为。在编写测试时使用,确保代码正确性、检测边界情况或度量性能。
完整的Rust系统编程指南,包括所有权、借用、并发、异步编程、不安全代码和性能优化
执行rustfeed项目的代码质量检查(cargo fmt、clippy、test、doc)。用于代码质量确认、提交前检查以及CI/CD验证时。
在编辑.rs文件后自动审查Rust代码,提供关于惯用模式、性能、安全性以及代码组织的实用建议。当Rust源文件被修改或明确请求时激活。
使用sqlx、事务和重试逻辑为数据库抽象实现仓库模式。在构建数据访问层时使用。
审查Rust代码的类型安全,验证GPU内存布局(如bytemuck、repr(C)、对齐方式),建议惯用模式,捕捉特定于GPU的安全问题,并在缓冲区整合期间帮助重构
Rust的智能指针模式(Arc、Rc、RefCell、Cell、OnceLock、Mutex)
带有跟踪和跟踪订阅的结构化日志
运行并调试glhf的Rust测试。在运行测试、修复测试失败或添加新的测试用例时使用。
优化Rust代码以提高WebAssembly编译和运行时性能。在构建WASM应用程序、优化二进制文件大小或改进WASM运行时性能时使用。
Rust事件驱动系统编程的最佳实践,适用于异步运行时、通道、套接字、终端和并发。在编写、审查或重构具有异步I/O、多线程、终端接口或网络通信的Rust应用程序时应使用此技能。当任务涉及tokio、async/await、通道、套接字、TTY处理、信号以及流式I/O时触发。
Rust项目组织和结构。在创建新项目、组织模块、设置工作区、配置Cargo.toml或在不同版本之间迁移时使用。
生产可靠性模式包括具有指数退避的断路器、通过信号处理实现的优雅关闭管理、带有抖动的重试逻辑、使用令牌桶进行速率限制以及安全最佳实践。在为生产环境强化服务、实现容错、添加重试逻辑或确保优雅降级时使用。
当用户要求"优化 Rust 代码"、"提高性能"、"减少内存使用"、"并行计算"、"缓存策略"、"HiGHS 求解器优化"、"数值计算优化"、"Moka 缓存"、"Rayon 并行"、"避免克隆"、"减少分配"、"SIMD 优化"、"工作窃取"、"异步性能"、"零成本抽象"、"内存优化"、"并发优化",或者提到"性能优化"、"Rust优化"、"优化"、"配方计算性能"时使用此技能。用于优化 Rus…
使用cargo test编写和运行Rust测试,包括单元测试、集成测试、文档测试以及基于属性的测试。在编写Rust测试或设置测试基础设施时使用。
适用于所有Rust代码的基础Rust风格约定。涵盖了导入组织、命名约定和代码格式标准。此技能自动应用于所有Rust实现,并应被所有其他Rust技能引用。
Rust开发工具,包括PyO3绑定、sqlx数据库访问、AGiXT SDK以及Rust-Python互操作
使用tokio编写健壮的async/await代码,并采用正确的非阻塞模式
rustfeed 项目的Cargo工作区配置、板条箱之间的依赖关系、数据库模式以及添加新功能时的放置规则。用于架构相关的问题询问和在添加新功能时使用。