frozen_collections_macros/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
//! Implementation crate for the frozen collections.
//!
//! <div class="warning">
//! This crate is an implementation detail of the `frozen_collections` crate.
//! This crate's API is therefore not stable and may change at any time. Please do not
//! use this crate directly, and instead use the public API provided by the
//! `frozen_collections` crate.
//! </div>

use frozen_collections_core::macros::*;
use proc_macro::TokenStream;
use proc_macro_error::proc_macro_error;

#[proc_macro]
#[proc_macro_error]
pub fn fz_hash_map(item: TokenStream) -> TokenStream {
    fz_hash_map_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro]
#[proc_macro_error]
pub fn fz_hash_set(item: TokenStream) -> TokenStream {
    fz_hash_set_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro]
#[proc_macro_error]
pub fn fz_ordered_map(item: TokenStream) -> TokenStream {
    fz_ordered_map_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro]
#[proc_macro_error]
pub fn fz_ordered_set(item: TokenStream) -> TokenStream {
    fz_ordered_set_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro]
#[proc_macro_error]
pub fn fz_string_map(item: TokenStream) -> TokenStream {
    fz_string_map_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro]
#[proc_macro_error]
pub fn fz_string_set(item: TokenStream) -> TokenStream {
    fz_string_set_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro]
#[proc_macro_error]
pub fn fz_scalar_map(item: TokenStream) -> TokenStream {
    fz_scalar_map_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro]
#[proc_macro_error]
pub fn fz_scalar_set(item: TokenStream) -> TokenStream {
    fz_scalar_set_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}

#[proc_macro_derive(Scalar)]
#[proc_macro_error]
pub fn derive_scalar(item: TokenStream) -> TokenStream {
    derive_scalar_macro(item.into())
        .unwrap_or_else(|error| error.to_compile_error())
        .into()
}