Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open more actions menu

Repository files navigation

rust-guard

Prevents AI assistants from suggesting outdated Rust code patterns

cargo install rust-guard
use rust_guard_v2::Guard;

fn main() {
    let guard = Guard::new()
        .deny_pattern("try!")
        .deny_pattern("extern crate")
        .deny_pattern(".to_owned()")
        .suggest_instead(".to_owned()", ".to_string() or .clone()");
    
    let code = r#"
        let result = try!(some_operation());
    "#;
    
    match guard.check(code) {
        Ok(_) => println!("clean"),
        Err(violations) => {
            for v in violations {
                eprintln!("{}", v);
            }
        }
    }
}

notes

Catches common outdated patterns that LLMs trained on old Rust code still suggest. Add custom rules for your project's conventions.

Default rules include:

  • try! macro (use ? operator)
  • extern crate (2015 edition syntax)
  • .to_owned() on &str (usually want .to_string())
  • std::ascii::AsciiExt (deprecated)
  • match ergonomics antipatterns

Run as pre-commit hook or in CI. Pairs well with clippy but focuses on patterns that evolved with editions rather than just correctness.

use rust_guard_v2::{Guard, Severity};

// custom project rules
let guard = Guard::new()
    .with_config("rust-guard.toml")
    .deny_pattern_with_context(
        r"\.unwrap\(\)",
        Severity::Warn,
        "prefer ? or expect() with context"
    )
    .deny_import("tokio::prelude", "import specific items instead")
    .require_feature_for_pattern(
        r"unsafe \{",
        "#![forbid(unsafe_code)] not set"
    );

// check entire project
guard.check_workspace(".")?;

// or integrate into build.rs
guard.check_src("src/")?;

MIT

About

Prevents AI assistants from suggesting outdated Rust code patterns

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.