mirror of
https://github.com/ahgamut/rust-ape-example.git
synced 2024-05-15 10:02:42 +00:00
50 lines
1.1 KiB
Rust
50 lines
1.1 KiB
Rust
// ./src/hello/print/print_debug.md
|
|
|
|
|
|
// Derive the `fmt::Debug` implementation for `Structure`. `Structure`
|
|
// is a structure which contains a single `i32`.
|
|
#[derive(Debug)]
|
|
struct Structure(i32);
|
|
|
|
// Put a `Structure` inside of the structure `Deep`. Make it printable
|
|
// also.
|
|
#[derive(Debug)]
|
|
struct Deep(Structure);
|
|
|
|
fn part0() {
|
|
// Printing with `{:?}` is similar to with `{}`.
|
|
println!("{:?} months in a year.", 12);
|
|
println!("{1:?} {0:?} is the {actor:?} name.",
|
|
"Slater",
|
|
"Christian",
|
|
actor="actor's");
|
|
|
|
// `Structure` is printable!
|
|
println!("Now {:?} will print!", Structure(3));
|
|
|
|
// The problem with `derive` is there is no control over how
|
|
// the results look. What if I want this to just show a `7`?
|
|
println!("Now {:?} will print!", Deep(Structure(7)));
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
struct Person<'a> {
|
|
name: &'a str,
|
|
age: u8
|
|
}
|
|
|
|
fn part1() {
|
|
let name = "Peter";
|
|
let age = 27;
|
|
let peter = Person { name, age };
|
|
|
|
// Pretty print
|
|
println!("{:#?}", peter);
|
|
}
|
|
|
|
pub fn main() {
|
|
part0();
|
|
part1();
|
|
}
|
|
|