ruststream_sqlx_macros/
lib.rs1#![forbid(unsafe_code)]
7
8mod check;
9mod checked;
10mod headers;
11mod inbox;
12mod insert;
13mod naming;
14mod outbox;
15mod parse;
16mod template;
17
18use proc_macro::TokenStream;
19use syn::{DeriveInput, parse_macro_input};
20
21#[proc_macro_derive(Inbox, attributes(inbox, field, sqlx))]
23pub fn derive_inbox(item: TokenStream) -> TokenStream {
24 let input = parse_macro_input!(item as DeriveInput);
25 inbox::expand(&input)
26 .unwrap_or_else(syn::Error::into_compile_error)
27 .into()
28}
29
30#[proc_macro_derive(InboxHeaders, attributes(inbox, field, sqlx))]
32pub fn derive_inbox_headers(item: TokenStream) -> TokenStream {
33 let input = parse_macro_input!(item as DeriveInput);
34 headers::expand(&input)
35 .unwrap_or_else(syn::Error::into_compile_error)
36 .into()
37}
38
39#[proc_macro_derive(Outbox, attributes(outbox, field, sqlx))]
41pub fn derive_outbox(item: TokenStream) -> TokenStream {
42 let input = parse_macro_input!(item as DeriveInput);
43 outbox::expand(&input)
44 .unwrap_or_else(syn::Error::into_compile_error)
45 .into()
46}
47
48#[proc_macro]
50pub fn outbox(item: TokenStream) -> TokenStream {
51 outbox::registry::expand(item.into())
52 .unwrap_or_else(syn::Error::into_compile_error)
53 .into()
54}