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

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.

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