Performance Mark

performance_mark is an attribute macro that adds performance (time) logging to functions. By default, it uses println!, but can be configured to use a custom method.

Basic example:

```rust use performancemarkattribute::performance_mark;

[performance_mark]

fn testfunctionloggedusingstdout() { println!("Hello!"); } ```

Output:

(performance_mark) test_function_logged_using_stdout took 7.177µs

Custom Logging Method

```rust use performancemarkattribute::{performance_mark, LogContext}

[performancemark(logwith_this)]

fn testfunctionloggedusingcustom_function() { println!("Hello!"); }

fn logwiththis(ctx: LogContext) { println!("Function: {} , Time: {}ms", ctx.function, ctx.duration); } ```

Custom Async Logging Method

```rust use performancemarkattribute::{performance_mark, LogContext}

[performancemark(async logwith_this)]

fn testfunctionloggedusingcustom_function() { println!("Hello!"); }

async fn logwiththis(ctx: LogContext) { // Log asynchronously } ```