Skip to main content

float_pigment_css_macro/
lib.rs

1#![recursion_limit = "128"]
2// #![feature(proc_macro_span)]
3// #![feature(path_file_prefix)]
4
5mod compatibility_check;
6mod property_list;
7mod resolve_font_size;
8mod style_syntax;
9mod value_type;
10
11#[proc_macro]
12pub fn property_list(tokens: proc_macro::TokenStream) -> proc_macro::TokenStream {
13    property_list::property_list(tokens)
14}
15
16#[proc_macro]
17pub fn property_value_format(tokens: proc_macro::TokenStream) -> proc_macro::TokenStream {
18    style_syntax::property_value_format(tokens)
19}
20
21#[proc_macro_attribute]
22pub fn property_value_type(
23    attr: proc_macro::TokenStream,
24    item: proc_macro::TokenStream,
25) -> proc_macro::TokenStream {
26    value_type::property_value_type(attr, item)
27}
28
29#[proc_macro_derive(ResolveFontSize, attributes(resolve_font_size))]
30pub fn resolve_font_size(attr: proc_macro::TokenStream) -> proc_macro::TokenStream {
31    resolve_font_size::derive_resolve_font_size(attr)
32}
33
34#[proc_macro_derive(CompatibilityEnumCheck)]
35pub fn compatibility_check_enum_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
36    compatibility_check::check_enum(input, compatibility_check::EnumCheckMode::Full)
37}
38
39#[proc_macro_derive(CompatibilityCheckForEnumVariant)]
40pub fn compatibility_check_for_enum_variant_derive(
41    input: proc_macro::TokenStream,
42) -> proc_macro::TokenStream {
43    compatibility_check::check_enum(input, compatibility_check::EnumCheckMode::Variant)
44}
45
46#[proc_macro_derive(CompatibilityStructCheck)]
47pub fn compatibility_check_struct_derive(
48    input: proc_macro::TokenStream,
49) -> proc_macro::TokenStream {
50    compatibility_check::check_struct(input)
51}
52
53#[proc_macro_attribute]
54pub fn compatibility_enum_check(
55    attr: proc_macro::TokenStream,
56    item: proc_macro::TokenStream,
57) -> proc_macro::TokenStream {
58    compatibility_check::check_enum_with_mod(attr, item)
59}
60
61#[proc_macro_attribute]
62pub fn compatibility_struct_check(
63    attr: proc_macro::TokenStream,
64    item: proc_macro::TokenStream,
65) -> proc_macro::TokenStream {
66    compatibility_check::check_struct_with_mod(attr, item)
67}