Rust Cursor Rules Template
Generate production-ready Rust Cursor rules for Project Rules (.mdc), AGENTS.md, or legacy .cursorrules. This template encodes stack-specific conventions for projects using Rust. Systems language with ownership, zero-cost abstractions, and fearless concurrency.
The Complete Rust Cursor Rules
The full rule set in all three formats Cursor understands — copy the one your project uses. Project Rules (.mdc) load per-file via globs, AGENTS.md is portable across AI tools, and .cursorrules is the legacy single-file format.
Replacing a legacy file? Read the guide to migrate .cursorrules to Cursor Project Rules (.mdc) before copying this template into your project.
---
description: "Ownership & Borrowing"
alwaysApply: false
---
- Prefer borrowing (&T, &mut T) over taking ownership when possible.
- Use snake_case for variables, functions, and methods.
- Use PascalCase for types, traits, and enums.
- Use SCREAMING_SNAKE_CASE for constants and statics.
- Clone only when ownership transfer is unavoidable.
- Use references with explicit lifetimes only when the compiler requires them.---
description: "Error Handling"
alwaysApply: false
---
- Use Result<T, E> for fallible operations — no exceptions.
- Use the ? operator for error propagation.
- Use thiserror for custom error types with derive macros.
- Use anyhow for application-level error handling.
- Use Option<T> instead of null — never use unwrap() in production code.
- Use expect() with descriptive messages during development only.---
description: "Modules & Crates"
alwaysApply: false
---
- Use mod declarations to organize code into modules.
- Use pub to control visibility — keep internals private by default.
- Use use statements for imports at the top of each file.
- Use pub(crate) for internal visibility within the crate.
- Use workspace for multi-crate projects.
- Keep module files focused: one primary concern per module.---
description: "Idiomatic Patterns"
alwaysApply: false
---
- Use match for exhaustive pattern matching.
- Use if let for single-pattern matching when fallback isn't needed.
- Use iterators (map, filter, collect) over explicit loops.
- Use derive macros (Debug, Clone, PartialEq) for boilerplate.
- Use impl Trait for return types when the concrete type is complex.
- Use trait bounds with where clauses for readability.Customize These Rules
The generator below is preloaded with the Rust template. Adjust indentation, quotes, naming, add your own rules, then download — no need to start from scratch on the homepage.
What This Template Covers
Required guidance
- - Ownership & Borrowing
- - Error Handling
- - Modules & Crates
- - Idiomatic Patterns
Default style
- - Indentation: 4 spaces
- - Quotes: double
- - Semicolons: enabled
- - Naming: snake_case
Frequently Asked Questions
- What does the Rust Cursor rules template include?
- It includes 4 rule sections covering ownership & borrowing, error handling, modules & crates and other Rust development conventions.
- Can I generate Rust Project Rules and AGENTS.md from the same template?
- Yes. The generator can export the same stack-specific guidance as modern Project Rules (.mdc), AGENTS.md, or a legacy .cursorrules file.
- Should I combine Rust with other Cursor rules templates?
- Yes. You can combine Rust with related templates such as TypeScript, Tailwind CSS, Docker, or backend frameworks when your project uses multiple technologies.