1#![expect(clippy::too_many_lines, reason = "Unimportant")]
4
5mod client_api_framework;
6mod error;
7mod executor;
8mod from_records;
9mod http;
10mod misc;
11
12use error::Error;
13
14type Result<T> = core::result::Result<T, Error>;
15
16#[proc_macro_attribute]
21pub fn api(
22 attrs: proc_macro::TokenStream,
23 item: proc_macro::TokenStream,
24) -> proc_macro::TokenStream {
25 match client_api_framework::api::api(attrs, item) {
26 Err(err) => syn::Error::from(err).to_compile_error().into(),
27 Ok(elem) => elem,
28 }
29}
30
31#[proc_macro_derive(ConnAux)]
33pub fn conn_aux(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
34 match http::conn_aux(item) {
35 Err(err) => syn::Error::from(err).to_compile_error().into(),
36 Ok(elem) => elem,
37 }
38}
39
40#[proc_macro_derive(FromRecords, attributes(from_records))]
42pub fn from_records(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
43 match from_records::from_records(item) {
44 Err(err) => syn::Error::from(err).to_compile_error().into(),
45 Ok(elem) => elem,
46 }
47}
48
49#[proc_macro_attribute]
51pub fn main(_: proc_macro::TokenStream, item: proc_macro::TokenStream) -> proc_macro::TokenStream {
52 executor::main(item)
53}
54
55#[proc_macro_attribute]
77pub fn pkg(
78 attr: proc_macro::TokenStream,
79 item: proc_macro::TokenStream,
80) -> proc_macro::TokenStream {
81 match client_api_framework::pkg::pkg(attr, item) {
82 Err(err) => syn::Error::from(err).to_compile_error().into(),
83 Ok(elem) => elem,
84 }
85}
86
87#[proc_macro_attribute]
89pub fn test(_: proc_macro::TokenStream, item: proc_macro::TokenStream) -> proc_macro::TokenStream {
90 executor::test(item)
91}