frozen_collections_macros/
lib.rs1#![expect(missing_docs, reason = "This is an implementation crate, not a public API crate")]
2
3use frozen_collections_core::macros::{
13 derive_scalar_macro, fz_hash_map_macro, fz_hash_set_macro, fz_ordered_map_macro, fz_ordered_set_macro, fz_scalar_map_macro,
14 fz_scalar_set_macro, fz_string_map_macro, fz_string_set_macro,
15};
16use proc_macro::TokenStream;
17use proc_macro_error2::proc_macro_error;
18
19#[proc_macro]
20#[proc_macro_error]
21pub fn fz_hash_map(item: TokenStream) -> TokenStream {
22 fz_hash_map_macro(item.into())
23 .unwrap_or_else(|error| error.to_compile_error())
24 .into()
25}
26
27#[proc_macro]
28#[proc_macro_error]
29pub fn fz_hash_set(item: TokenStream) -> TokenStream {
30 fz_hash_set_macro(item.into())
31 .unwrap_or_else(|error| error.to_compile_error())
32 .into()
33}
34
35#[proc_macro]
36#[proc_macro_error]
37pub fn fz_ordered_map(item: TokenStream) -> TokenStream {
38 fz_ordered_map_macro(item.into())
39 .unwrap_or_else(|error| error.to_compile_error())
40 .into()
41}
42
43#[proc_macro]
44#[proc_macro_error]
45pub fn fz_ordered_set(item: TokenStream) -> TokenStream {
46 fz_ordered_set_macro(item.into())
47 .unwrap_or_else(|error| error.to_compile_error())
48 .into()
49}
50
51#[proc_macro]
52#[proc_macro_error]
53pub fn fz_string_map(item: TokenStream) -> TokenStream {
54 fz_string_map_macro(item.into())
55 .unwrap_or_else(|error| error.to_compile_error())
56 .into()
57}
58
59#[proc_macro]
60#[proc_macro_error]
61pub fn fz_string_set(item: TokenStream) -> TokenStream {
62 fz_string_set_macro(item.into())
63 .unwrap_or_else(|error| error.to_compile_error())
64 .into()
65}
66
67#[proc_macro]
68#[proc_macro_error]
69pub fn fz_scalar_map(item: TokenStream) -> TokenStream {
70 fz_scalar_map_macro(item.into())
71 .unwrap_or_else(|error| error.to_compile_error())
72 .into()
73}
74
75#[proc_macro]
76#[proc_macro_error]
77pub fn fz_scalar_set(item: TokenStream) -> TokenStream {
78 fz_scalar_set_macro(item.into())
79 .unwrap_or_else(|error| error.to_compile_error())
80 .into()
81}
82
83#[proc_macro_derive(Scalar)]
84#[proc_macro_error]
85pub fn derive_scalar(item: TokenStream) -> TokenStream {
86 derive_scalar_macro(item.into())
87 .unwrap_or_else(|error| error.to_compile_error())
88 .into()
89}