blob: d95b6844d755df769eeaadc1d7abbc5f6ae13c7a [file] [log] [blame]
#![allow(dead_code)]
struct Person {
age: i32,
name: String,
}
impl ToString for Person {
fn to_string(&self) -> String {
format!("{} ({})", self.name, self.age)
}
}
fn greet_person_1(p: Person) {
println!("Hello {} ({})!", p.name, p.age);
}
fn greet_person_2(p: &Person) {
println!("Hello {} ({})!", p.name, p.age);
}
fn birthday(p: &mut Person) {
p.age += 1;
}
fn main() {
// -- Struct instantiation --
let mut p = Person { age: 30, name: "Mary".to_string() };
// -- Borrowing --
//greet_person_1(p);
//greet_person_1(p);
greet_person_2(&p);
greet_person_2(&p);
birthday(&mut p);
greet_person_2(&p);
// -- Traits --
println!("p = {}", p.to_string());
// -- Debugging --
let x = dbg!(100 + 2) + 3;
println!("Hello, world! 100 + 2 + 3 = {}", x);
}