fastmetrics_derive/
lib.rs1#![deny(unsafe_code)]
4#![deny(unused_crate_dependencies)]
5#![forbid(unsafe_code)]
6
7mod encode_label_set;
8mod encode_label_value;
9mod state_set_value;
10
11use proc_macro::TokenStream;
12use syn::{parse_macro_input, DeriveInput};
13
14#[proc_macro_derive(EncodeLabelSet)]
16pub fn derive_encode_label_set(input: TokenStream) -> TokenStream {
17 let input = parse_macro_input!(input as DeriveInput);
18 encode_label_set::expand_derive_encode_label_set(input)
19 .unwrap_or_else(syn::Error::into_compile_error)
20 .into()
21}
22
23#[proc_macro_derive(EncodeLabelValue)]
25pub fn derive_encode_label_value(input: TokenStream) -> TokenStream {
26 let input = parse_macro_input!(input as DeriveInput);
27 encode_label_value::expand_derive_encode_label_value(input)
28 .unwrap_or_else(syn::Error::into_compile_error)
29 .into()
30}
31
32#[proc_macro_derive(StateSetValue)]
34pub fn derive_state_set_value(input: TokenStream) -> TokenStream {
35 let input = parse_macro_input!(input as DeriveInput);
36 state_set_value::expand_derive_state_set_value(input)
37 .unwrap_or_else(syn::Error::into_compile_error)
38 .into()
39}