ordinal_map_derive/
lib.rs1mod ordinal;
6
7fn wrapper(
8 input: proc_macro::TokenStream,
9 f: impl FnOnce(proc_macro2::TokenStream) -> syn::Result<proc_macro2::TokenStream>,
10) -> proc_macro::TokenStream {
11 let input = proc_macro2::TokenStream::from(input);
12 let output = f(input).unwrap_or_else(|e| e.to_compile_error());
13 proc_macro::TokenStream::from(output)
14}
15
16#[proc_macro_derive(Ordinal)]
20pub fn derive_ordinal(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
21 wrapper(input, ordinal::derive_ordinal)
22}
23
24#[proc_macro]
25#[doc(hidden)]
26pub fn impl_ordinal_for_tuple(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
27 wrapper(input, ordinal::impl_ordinal_for_tuple)
28}