1#![doc(html_root_url = "https://docs.rs/vise-macros/0.3.2")]
10#![recursion_limit = "128"]
12#![warn(missing_debug_implementations, bare_trait_objects)]
14#![warn(clippy::all, clippy::pedantic)]
15#![allow(clippy::must_use_candidate, clippy::module_name_repetitions)]
16
17extern crate proc_macro;
18
19use proc_macro::TokenStream;
20
21mod labels;
22mod metrics;
23mod register;
24mod utils;
25
26#[proc_macro_derive(Metrics, attributes(metrics))]
27pub fn metrics(input: TokenStream) -> TokenStream {
28 metrics::impl_metrics(input)
29}
30
31#[proc_macro_derive(EncodeLabelValue, attributes(metrics))]
32pub fn encode_label_value(input: TokenStream) -> TokenStream {
33 labels::impl_encode_label_value(input)
34}
35
36#[proc_macro_derive(EncodeLabelSet, attributes(metrics))]
37pub fn encode_label_set(input: TokenStream) -> TokenStream {
38 labels::impl_encode_label_set(input)
39}
40
41#[proc_macro_attribute]
42pub fn register(_attrs: TokenStream, input: TokenStream) -> TokenStream {
43 register::impl_register(input)
44}