| name | rust-prompt-templates |
| description | AI 輔助 Rust 開發的提示詞模板庫。涵蓋七大類別:程式碼生成(Code Generation)、 Debug/錯誤修復(Debugging)、重構(Refactoring)、程式碼審查(Code Review)、 文件生成(Documentation)、效能優化(Performance)、測試撰寫(Testing)。 每個模板含觸發場景、變數插槽、預期輸出格式。 適用於 Claude、ChatGPT、Copilot 等 AI 工具的 Rust 開發場景。 觸發關鍵詞:Rust prompt, AI assisted Rust, prompt template, code generation prompt, debug prompt, refactor prompt, code review prompt, Rust AI development, LLM Rust coding, AI pair programming Rust
|
Rust Prompt Templates — AI 輔助 Rust 開發提示詞模板庫
適用場景
- 使用 AI(Claude / ChatGPT / Copilot)撰寫 Rust 程式碼時,需要結構化的 prompt 以獲得高品質輸出
- 團隊統一 AI 輔助開發流程,確保產出風格一致
- 快速生成符合 Rust 慣例的程式碼、測試、文件
- Debug 時需要 AI 精確分析編譯錯誤或 runtime 問題
- 程式碼審查、重構、效能優化的標準化 AI 輔助流程
核心知識:Prompt 設計五原則
| # | 原則 | 說明 |
|---|
| 1 | 角色設定 | 開頭指定角色(如「你是 Rust 資深工程師」),引導模型調用正確領域知識 |
| 2 | 具體約束 | 明列 Rust edition、crate 版本、#![forbid(unsafe_code)] 等技術邊界 |
| 3 | 輸出格式 | 指定「完整 .rs 檔案」「含 /// doc comments」「附 Cargo.toml」 |
| 4 | 上下文注入 | 提供型別定義、錯誤訊息、程式碼片段;上下文越精確,產出越準確 |
| 5 | 迭代提示 | 複雜任務拆為 prompt chain:設計介面 → 實作 → 錯誤處理 → 測試 |
類別 1:程式碼生成(Code Generation)
Template 1.1:從規格生成 Rust 結構體
觸發場景: 需要根據 API 規格或資料模型建立 Rust struct + 常用 trait 實作。
你是 Rust 專家。根據以下規格生成 Rust 程式碼:
- 結構體名稱:{struct_name}
- 欄位定義:
{fields}
- 需要的 derive 巨集:{derives}
- 需要手動實作的 trait:{traits}
- 額外約束:{constraints}
要求:
1. Rust 2021 edition 慣用風格,每個欄位含 `///` doc comment
2. 提供 builder pattern 或建構函式,含驗證邏輯
3. 附完整單元測試,錯誤處理用 thiserror
輸出格式:完整的 .rs 檔案,可直接編譯。
使用範例: {struct_name}=UserProfile, {fields}=id: Uuid, name: String, email: String
Template 1.2:從描述生成完整模組
觸發場景: 描述一個功能需求,讓 AI 產出包含公開 API、內部實作、錯誤型別的完整模組。
你是 Rust 系統工程師。根據以下功能描述,生成一個完整的 Rust 模組:
功能描述:{feature_description}
模組名稱:{module_name}
依賴的外部 crate:{dependencies}
效能需求:{performance_requirements}
請產出:公開 API + 內部實作 + Error enum (thiserror) + `///` 文件 + `#[cfg(test)]` 測試
約束:禁止 unwrap/expect、公開型別實作 Debug、附 Cargo.toml [dependencies]
使用範例: {feature_description}=LRU 快取(TTL + 容量上限), {module_name}=cache
Template 1.3:實作特定 Trait
觸發場景: 需要為現有型別實作標準庫或自訂 trait。
你是 Rust trait 實作專家。為以下型別實作指定的 trait:
型別定義:
{type_definition}
需要實作的 trait:{target_trait}
trait 簽名(若為自訂 trait):
{trait_signature}
語意需求:{semantic_requirements}
要求:符合 trait 語意契約、unsafe 附 SAFETY 註解、考慮 edge case、附 3+ 測試案例
類別 2:Debug / 錯誤修復(Debugging)
Template 2.1:解讀編譯錯誤
觸發場景: 遇到看不懂的 rustc 錯誤訊息,需要 AI 解釋根因並提供修復方案。
以下是 Rust 編譯錯誤,請分析:
錯誤訊息:
{error_message}
相關程式碼:
{code_snippet}
請回答:
1. 根本原因(ownership / lifetime / trait bound / type mismatch)
2. 最小修改方案(保持原設計意圖)
3. 若有多種方案,列出 trade-off
4. 預防此錯誤的習慣或 lint 設定
Template 2.2:分析 Runtime Panic
觸發場景: 程式在執行時 panic,需要從 backtrace 與程式碼推斷根因。
你是 Rust 除錯專家。以下程式在執行時發生 panic:
panic 訊息:
{panic_message}
Backtrace(關鍵部分):
{backtrace}
相關程式碼:
{code_snippet}
請回答:
1. 觸發點與導致 panic 的資料狀態
2. 修復方案(改用 Result/Option)
3. 建議的防禦性檢查與驗證測試
Template 2.3:修復 Borrow Checker 錯誤
觸發場景: 遇到 cannot borrow as mutable、does not live long enough 等經典 borrow checker 問題。
以下 Rust 程式碼遇到 borrow checker 錯誤,請幫我修復:
錯誤訊息:
{error_message}
完整函式:
{function_code}
呼叫方的上下文:
{caller_context}
要求:
1. 解釋衝突原因(畫出 borrow 生命週期)
2. 至少 2 種方案(依推薦排序),說明 ownership 影響
3. 不建議 clone() 除非最佳;適時建議 Cow/RefCell/Arc
類別 3:重構(Refactoring)
Template 3.1:改善錯誤處理(unwrap → Result)
觸發場景: 既有程式碼中充滿 .unwrap() / .expect(),需要系統性改為 Result 傳播。
請重構以下 Rust 程式碼,將所有 unwrap/expect 替換為正確的錯誤處理:
原始程式碼:
{original_code}
要求:
1. 定義 Error enum(thiserror + #[from]),unwrap/expect 改為 `?`
2. 回傳 Result<T, Error>,每個變體附有意義的上下文
3. 確保重構後邏輯等價於原始版本
Template 3.2:提取公共 Trait
觸發場景: 多個型別有相似行為,需要抽象為 trait 以符合多型設計。
以下多個 Rust 型別有相似的方法,請提取公共 trait:
型別 A:
{type_a_code}
型別 B:
{type_b_code}
型別 C(若有):
{type_c_code}
要求:
1. 設計 trait 介面(合適的 self 接收者 + associated type / 泛型)
2. 為每個型別實作,預設實作放 trait 定義
3. 附泛型函式展示多型用法
Template 3.3:優化資料結構設計
觸發場景: 既有資料結構設計不理想,需要重新組織以提升效能或可維護性。
請優化以下 Rust 資料結構設計:
現有結構:
{current_structures}
使用場景與存取模式:
{access_patterns}
痛點:{pain_points}
要求:
1. 分析問題(記憶體佈局、cache locality、不必要的 clone)
2. 改善後結構 + 理由(struct size / alignment)
3. 遷移路徑(轉換函式)+ impl 區塊與測試
類別 4:程式碼審查(Code Review)
Template 4.1:全面程式碼審查
觸發場景: 提交 PR 前的全面品質檢查。
請對以下 Rust 程式碼進行全面審查:
程式碼:
{code}
審查維度:正確性、慣用性(clippy)、安全性、效能、可維護性、錯誤處理
輸出:🔴 CRITICAL / 🟡 WARNING / 🔵 SUGGESTION,每條含行號+問題+修改建議
Template 4.2:安全性審查
觸發場景: 處理使用者輸入、網路通訊、檔案操作的程式碼需要安全性審查。
請對以下 Rust 程式碼進行安全性審查:
程式碼:
{code}
程式碼的用途:{purpose}
部署環境:{deployment_context}
重點:輸入驗證(injection/path traversal)、unsafe 正確性、整數溢位、
敏感資料(zeroize?)、並行安全、依賴 CVE、錯誤訊息洩漏
輸出:每項附 CVSS 風險等級與修復建議。
Template 4.3:效能審查
觸發場景: 熱路徑程式碼需要效能層面的專家審查。
請對以下 Rust 熱路徑程式碼進行效能審查:
程式碼:
{code}
workload 特性:{workload}
效能目標:{performance_target}
重點:多餘 allocation/clone/collect、iterator chain、鎖粒度、cache locality、SIMD/rayon
輸出:每項附預期 speedup 與修改後程式碼。
類別 5:文件生成(Documentation)
Template 5.1:生成 Doc Comments
觸發場景: 為既有函式或型別補上完整的 /// doc comments。
為以下 Rust 程式碼生成完整的文件註解:
程式碼:
{code}
要求:
1. `///` doc comment(摘要 + 說明 + Arguments/Returns/Errors/Panics)
2. 含 `# Examples` doctest 區塊,使用 intra-doc links
Template 5.2:生成 README 章節
觸發場景: 為 Rust crate 撰寫 README 中的使用說明章節。
根據以下 Rust crate 資訊,生成 README.md 的使用說明章節:
crate 名稱:{crate_name}
核心公開 API:
{public_api_summary}
主要 use case:{use_cases}
請產出:Quick Start / Features(checkbox)/ Usage(2-3 場景)/ Configuration
程式碼區塊用 `rust` 語法高亮,語調專業簡潔。
Template 5.3:生成 CHANGELOG 條目
觸發場景: 根據 git diff 或功能描述生成結構化的 CHANGELOG 條目。
根據以下變更資訊,生成 CHANGELOG 條目:
版本號:{version}
變更摘要:
{changes_summary}
程式碼差異(關鍵部分):
{diff_snippet}
格式:Keep a Changelog(Added/Changed/Deprecated/Removed/Fixed/Security)
每條一句話,動詞開頭,附 PR/Issue 連結佔位符。
類別 6:效能優化(Performance)
Template 6.1:找出效能瓶頸
觸發場景: 程式執行速度不如預期,需要 AI 協助分析可能的瓶頸。
請分析以下 Rust 程式碼的效能瓶頸:
程式碼:
{code}
觀察到的效能數據:
{benchmark_data}
目標效能:{target}
請回答:
1. 前 3 瓶頸點(行號 + CPU/memory/IO bound 分析)
2. 改善方案(附程式碼)+ profiling 工具建議 + 預估 speedup
Template 6.2:建議資料結構替換
觸發場景: 懷疑使用的資料結構不是最佳選擇。
目前使用以下資料結構,請評估是否有更好的替代方案:
目前的資料結構:{current_ds}
操作頻率分佈:
- 讀取:{read_frequency}
- 寫入:{write_frequency}
- 搜尋:{search_frequency}
- 刪除:{delete_frequency}
資料量級:{data_size}
並行需求:{concurrency}
請回答:
1. 現有複雜度分析 → 推薦替代(std 或 crate 中的具體型別)
2. 遷移程式碼 + criterion benchmark 骨架
Template 6.3:優化記憶體配置
觸發場景: 程式的 heap allocation 過多,需要減少記憶體配置開銷。
請優化以下 Rust 程式碼的記憶體配置:
程式碼:
{code}
已知的 allocation 熱點(若有 profiling 數據):
{allocation_profile}
要求:
1. 找出不必要的 heap allocation → 建議 SmallVec/ArrayString/Cow/&str/arena
2. 提供 before/after 對照 + memory footprint 改善評估
類別 7:測試撰寫(Testing)
Template 7.1:生成單元測試
觸發場景: 為既有函式生成完整的單元測試。
為以下 Rust 函式生成完整的單元測試:
函式:
{function_code}
相關型別定義:
{type_definitions}
要求:
1. happy path(2+)+ 邊界條件 + 錯誤路徑(每 variant 至少 1 個)
2. 命名慣例 `should_動作_when_條件`,用 assert_eq!/assert!(matches!(...))
Template 7.2:生成屬性測試(Property-Based Testing)
觸發場景: 函式具有數學性質或不變量,適合用 proptest 進行驗證。
為以下 Rust 函式設計 property-based test:
函式:
{function_code}
已知的不變量/性質:
{invariants}
要求:
1. 用 proptest,設計 3+ property(round-trip/commutativity/idempotence)
2. 定義 Strategy + shrink 最小反例說明 + [dev-dependencies]
格式:
```rust
proptest! {
#[test]
fn prop_描述(input in strategy) {
// property assertion
}
}
```(結尾三個反引號)
Template 7.3:生成 Integration Test
觸發場景: 需要測試多個模組的交互行為,或測試外部系統整合。
為以下 Rust 模組生成 integration test:
模組的公開 API:
{public_api}
模組之間的互動流程:
{interaction_flow}
外部依賴(資料庫/API/檔案系統):
{external_deps}
要求:
1. tests/ 目錄,setup/teardown 管理環境,外部依賴用 mockall
2. 完整 use case 流程 + error propagation 端對端測試 + 並行隔離
Prompt Anti-Patterns(反模式對照表)
| # | Anti-Pattern | 問題描述 | 改善方式 |
|---|
| 1 | 模糊指令 「寫一個 Rust 程式」 | 缺乏規格,AI 將臆測所有細節 | 明確指定功能、型別、約束、輸出格式 |
| 2 | 過度要求 「寫一個完美的、生產級的...」 | 「完美」無法量化,導致過度工程 | 列舉具體的品質標準(無 unwrap、80% 覆蓋率等) |
| 3 | 缺少上下文 「修復這個錯誤」 | 未提供錯誤訊息或程式碼 | 附上完整錯誤訊息 + 相關程式碼 + 呼叫方上下文 |
| 4 | 一次要求太多 「寫一個完整的 web 框架」 | 超出單次 prompt 的合理範圍 | 拆成步驟:先設計 API → 實作路由 → 加中介層 → 寫測試 |
| 5 | 忽略 Rust 特性 「像 Java 那樣寫」 | 強迫 Rust 使用不慣用的模式 | 明確要求 idiomatic Rust,利用 ownership 與 trait 系統 |
| 6 | 不指定版本 「用 tokio 寫非同步」 | AI 可能使用過時的 API | 指定 tokio = "1.x"、Rust edition 2021、MSRV 等 |
| 7 | 複製貼上錯誤碼片段 | 缺少函式簽名與型別定義 | 提供完整函式(含 use 與型別定義),不要截斷 |
參考來源
- The Rust Programming Language Book — 官方教學書,所有 prompt 的 Rust 概念基準
- Rust API Guidelines — API 設計慣例,prompt 產出應遵循此標準
- Rust Design Patterns (Unofficial Book) — 慣用模式集,程式碼生成 prompt 的模式參考
- Anthropic Prompt Engineering Guide — Claude 官方 prompt 設計指南
- OpenAI Best Practices for Prompt Engineering — GPT 系列的 prompt 最佳實踐
- Rust Compiler Error Index — 編譯錯誤代碼索引,Debug 模板的知識基礎
- Blessed.rs — Unofficial Guide to Rust Crates — 推薦 crate 清單,程式碼生成時的依賴參考