Skip to content
Novus Examples
rs942 B

Rust — Shapes (enum, trait, pattern matching)

A realistic Rust snippet with an enum carrying data, a trait and impl, exhaustive match, iterators, and Option handling — for testing highlighters, rustc, clippy, and parsers against real ownership-era code.

Preview — first 41 linesrs
// Shapes in Rust: an enum with data, a trait with an impl, pattern
// matching, iterators, and Option handling.

#[derive(Debug)]
enum Shape {
    Circle { radius: f64 },
    Rectangle { width: f64, height: f64 },
}

trait Area {
    fn area(&self) -> f64;
}

impl Area for Shape {
    fn area(&self) -> f64 {
        match self {
            Shape::Circle { radius } => std::f64::consts::PI * radius * radius,
            Shape::Rectangle { width, height } => width * height,
        }
    }
}

fn largest(shapes: &[Shape]) -> Option<&Shape> {
    shapes.iter().max_by(|a, b| a.area().total_cmp(&b.area()))
}

fn main() {
    let shapes = vec![
        Shape::Circle { radius: 2.0 },
        Shape::Rectangle { width: 3.0, height: 4.0 },
    ];

    for shape in &shapes {
        println!("{:?} has area {:.2}", shape, shape.area());
    }

    if let Some(biggest) = largest(&shapes) {
        println!("largest: {:?}", biggest);
    }
}

Specifications

Language
Rust
Kind
realistic snippet
Lines
40
Encoding
UTF-8
Line Endings
LF

Testing contract

Expected to pass
Scenario
Compile the file with clippy enabled and run it.
Expected result
It prints the area of each shape to two decimals - the circle at radius 2.0 gives 12.57 and the rectangle 3.0 x 4.0 gives 12.00 - and then reports the Circle as largest, because 12.57 exceeds 12.00. The `match` over `Shape` is exhaustive without a wildcard arm, so adding a variant must break the build rather than fall through.

What is a .rs file?

Rust (.rs) is a plain-text source file for the Rust programming language — a statically typed, compiled systems language focused on memory safety without a garbage collector, enforced by its ownership and borrow checker. It features enums with data, pattern matching, traits, generics, and a strong type system.

How to use this file

Use an example .rs file to test syntax highlighters, the rustc compiler and cargo, rustfmt and clippy, and parser or language-detection tooling against real Rust constructs.

How to use this file for testing

“Rust — Shapes (enum, trait, pattern matching)” is a deterministic Novus Examples fixture for Syntax highlighting, Code parsing, Editor testing. Idiomatic hello-world programs and realistic snippets across sixteen languages, exercising comments, string escapes, interpolation, numeric literals, and language keywords — for testing syntax highlighters, editor themes, and tree-sitter grammars.

Documented properties for this file: Rust · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

This is a short, known-correct source file. Run it through your syntax highlighter, linter, formatter, tree-sitter grammar, or parser, and open it in the in-browser editor to tweak and re-download. Each snippet exercises comments, string escapes, literals, and language keywords.

Code examples

rustc shapes.rs -o prog && ./prog

Generated by generation/code_samples.py. Free for any use, no attribution required — license.