1#![warn(
4 clippy::all,
5 clippy::cargo,
6 clippy::missing_docs_in_private_items,
7 clippy::nursery,
8 clippy::pedantic,
9 clippy::restriction
10)]
11#![allow(
12 clippy::blanket_clippy_restriction_lints,
13 clippy::implicit_return,
14 clippy::module_name_repetitions
15)]
16
17extern crate proc_macro;
18extern crate proc_macro2;
19
20mod file;
21mod input;
22mod output;
23mod save;
24
25use proc_macro::TokenStream;
26
27#[proc_macro_attribute]
29#[inline]
30#[must_use]
31pub fn input(metadata: TokenStream, input: TokenStream) -> TokenStream {
32 input::implementation(&metadata, input)
33}
34
35#[proc_macro_attribute]
37#[inline]
38#[must_use]
39pub fn output(metadata: TokenStream, input: TokenStream) -> TokenStream {
40 output::implementation(&metadata, input)
41}
42
43#[proc_macro_attribute]
45#[inline]
46#[must_use]
47pub fn file(metadata: TokenStream, input: TokenStream) -> TokenStream {
48 file::implementation(&metadata, input)
49}
50
51#[proc_macro_attribute]
53#[inline]
54#[must_use]
55pub fn save(metadata: TokenStream, input: TokenStream) -> TokenStream {
56 save::implementation(&metadata, input)
57}