#macro-derive #proc-macro #greeting #traits #struct #enums #hello

bogdan_hello_macro

adds the method hello_macro that generates a greeting based on the name of the struct

4 releases

0.1.7 Aug 3, 2024
0.1.6 Aug 3, 2024
0.1.5 Aug 3, 2024
0.1.0 Aug 3, 2024

#1338 in Rust patterns

MIT/Apache

3KB

HelloMacro

HelloMacro is a Rust procedural macro that automatically implements the HelloMacro trait for any struct or enum. This trait includes a single method, hello_macro, which prints a greeting message including the name of the type.

Usage

To use the HelloMacro derive macro, add it as a dependency in your Cargo.toml:

[dependencies]
bogdan_hello_macro = "0.1.7"
bogdan_hello_macro_derive = "0.1.7"

Add the following to your code:

use bogdan_hello_macro::HelloMacro;
use bogdan_hello_macro_derive::HelloMacro;

Then, you can use the HelloMacro derive macro on any struct or enum:

use bogdan_hello_macro::HelloMacro;
use bogdan_hello_macro_derive::HelloMacro;

#[derive(HelloMacro)]
struct Pancakes;

fn main() {
    Pancakes::hello_macro(); // Prints: "Hello, Macro! My name is Pancakes!"
}

Example

Here’s a complete example demonstrating how to use the HelloMacro derive macro:

use bogdan_hello_macro::HelloMacro;
use bogdan_hello_macro_derive::HelloMacro;

#[derive(HelloMacro)]
struct Waffles;

#[derive(HelloMacro)]
enum Breakfast {
    Eggs,
    Bacon,
}

fn main() {
    Waffles::hello_macro(); // Prints: "Hello, Macro! My name is Waffles!"
    Breakfast::Eggs.hello_macro(); // Prints: "Hello, Macro! My name is Eggs!"
    Breakfast::Bacon.hello_macro(); // Prints: "Hello, Macro! My name is Bacon!"
}

No runtime deps