Structs and Enums
1/14/2025
Structs and Enums
Rust uses structs and enums to create custom data types.
Structs
rust
struct User {
username: String,
email: String,
active: bool,
}
fn main() {
let user = User {
username: String::from("john"),
email: String::from("[email protected]"),
active: true,
};
println!("User: {}", user.username);
}Impl Blocks
rust
struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
fn area(&self) -> u32 {
self.width * self.height
}
fn new(width: u32, height: u32) -> Rectangle {
Rectangle { width, height }
}
}Enums
rust
enum Message {
Quit,
Move { x: i32, y: i32 },
Write(String),
ChangeColor(i32, i32, i32),
}
fn process(msg: Message) {
match msg {
Message::Quit => println!("Quit"),
Message::Move { x, y } => println!("Move to {}, {}", x, y),
Message::Write(text) => println!("Text: {}", text),
Message::ChangeColor(r, g, b) => println!("RGB: {}, {}, {}", r, g, b),
}
}Option and Result
rust
fn divide(a: f64, b: f64) -> Option<f64> {
if b == 0.0 {
None
} else {
Some(a / b)
}
}
Monkey Knows Wiki