arctk_proc/
lib.rs

1//! Support library of procedural macros.
2
3#![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    clippy::panic,
16    clippy::expect_used,
17    clippy::wildcard_enum_match_arm
18)]
19
20extern crate proc_macro;
21extern crate proc_macro2;
22
23mod file;
24mod input;
25mod output;
26mod save;
27
28use crate::proc_macro::TokenStream;
29
30/// Create the procedural macro Input.
31#[proc_macro_derive(Input)]
32#[inline]
33#[must_use]
34pub fn input_derive(input: TokenStream) -> TokenStream {
35    input::input_derive_impl(input)
36}
37
38/// Create the procedural macro File.
39#[proc_macro_derive(File)]
40#[inline]
41#[must_use]
42pub fn file_derive(input: TokenStream) -> TokenStream {
43    file::file_derive_impl(input)
44}
45
46/// Create the procedural macro Output.
47#[proc_macro_derive(Output)]
48#[inline]
49#[must_use]
50pub fn output_derive(input: TokenStream) -> TokenStream {
51    output::output_derive_impl(input)
52}
53
54/// Create the procedural macro Save.
55#[proc_macro_derive(Save)]
56#[inline]
57#[must_use]
58pub fn save_derive(input: TokenStream) -> TokenStream {
59    save::save_derive_impl(input)
60}