1#![expect(clippy::too_many_lines, reason = "Unimportant")]
4
5mod client_api_framework;
6mod error;
7mod executor;
8mod from_records;
9mod from_vars;
10mod http;
11mod misc;
12mod table;
13
14use error::Error;
15
16type Result<T> = core::result::Result<T, Error>;
17
18#[proc_macro_attribute]
23pub fn api(
24 attrs: proc_macro::TokenStream,
25 item: proc_macro::TokenStream,
26) -> proc_macro::TokenStream {
27 match client_api_framework::api::api(attrs, item) {
28 Err(err) => syn::Error::from(err).to_compile_error().into(),
29 Ok(elem) => elem,
30 }
31}
32
33#[proc_macro_derive(ConnAux)]
35pub fn conn_aux(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
36 match http::conn_aux(item) {
37 Err(err) => syn::Error::from(err).to_compile_error().into(),
38 Ok(elem) => elem,
39 }
40}
41
42#[proc_macro_derive(FromRecords, attributes(from_records))]
44pub fn from_records(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
45 match from_records::from_records(item) {
46 Err(err) => syn::Error::from(err).to_compile_error().into(),
47 Ok(elem) => elem,
48 }
49}
50
51#[proc_macro_derive(FromVars, attributes(from_vars))]
53pub fn from_vars(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
54 match from_vars::from_vars(item) {
55 Err(err) => syn::Error::from(err).to_compile_error().into(),
56 Ok(elem) => elem,
57 }
58}
59
60#[proc_macro_attribute]
62pub fn main(_: proc_macro::TokenStream, item: proc_macro::TokenStream) -> proc_macro::TokenStream {
63 executor::main(item)
64}
65
66#[proc_macro_attribute]
88pub fn pkg(
89 attr: proc_macro::TokenStream,
90 item: proc_macro::TokenStream,
91) -> proc_macro::TokenStream {
92 match client_api_framework::pkg::pkg(attr, item) {
93 Err(err) => syn::Error::from(err).to_compile_error().into(),
94 Ok(elem) => elem,
95 }
96}
97
98#[proc_macro_derive(Table)]
100pub fn table(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
101 match table::table(item) {
102 Err(err) => syn::Error::from(err).to_compile_error().into(),
103 Ok(elem) => elem,
104 }
105}
106
107#[proc_macro_attribute]
109pub fn test(_: proc_macro::TokenStream, item: proc_macro::TokenStream) -> proc_macro::TokenStream {
110 executor::test(item)
111}