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.
// 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.
Related files
- rsRust — Hello WorldThe classic hello-world in Rust — fn main and the println! macro — for testing highlighters, rustc, and parsers.

- cC — Hello WorldThe classic hello-world in C — an include, main, and printf — for testing highlighters, C compilers, and parsers against the canonical first program.

- cC — Linked list (structs, malloc, pointers)A realistic C program: a singly linked list with a typedef struct, malloc/free memory management, pointer walking, and error handling — for testing highlighters, compilers, and static analysers.

- cppC++ — Hello WorldThe classic hello-world in C++ — iostream and std::cout — for testing highlighters, C++ compilers, and parsers.

- cppC++ — Series (class template, STL)A realistic C++ snippet with a class template, STL algorithms (max_element, accumulate), std::move, and range handling — for testing highlighters, g++/clang++, and parsers against real templates.

- cssCSS — Component styles (variables, flexbox, keyframes)A realistic component stylesheet using custom properties, flexbox, a fluid clamp() font size, color-mix(), a keyframe animation, and a media query — for testing CSS parsers, linters (stylelint), and highlighters.

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