lingon-macro 0.1.0

Proc-macros for the Lingon game engine.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use lazy_static::lazy_static;
use std::sync::atomic::{AtomicUsize, Ordering};
use quote::quote;

lazy_static! {
    static ref PERF_COUNTER: AtomicUsize = AtomicUsize::new(0);
}

#[proc_macro]
pub fn perf_counter(_: proc_macro::TokenStream) -> proc_macro::TokenStream {
    let value = PERF_COUNTER.fetch_add(1, Ordering::Relaxed);
    let tokens = quote! {
        #value
    };
    proc_macro::TokenStream::from(tokens)
}