//!
//! Rust name_of! Macro
//!
//! MIT License
//! Copyright (c) 2018 SilentByte
//!
#[macro_use]
extern crate nameof;
struct TestStruct {
test_field: i32,
}
struct GenericStruct {
test_field_t: T,
}
fn greet() -> &'static str {
"Hi, World"
}
fn main() {
let text = "Hello, World!";
println!("Binding `{}` holds `{}`.", name_of!(text), text);
println!("Function `{}` says `{}`.", name_of!(greet), greet());
println!(
"Struct `{}` has a field `{}`.",
name_of!(type TestStruct),
name_of!(test_field in TestStruct)
);
println!(
"Generic Struct `{}` has a field `{}`.",
name_of!(type GenericStruct),
name_of!(test_field_t in GenericStruct)
);
println!(
"Standard types such as `{}` and `{}` also work.",
name_of!(type i32),
name_of!(type f64)
);
}