Skip to main content

shibari_macros/
lib.rs

1use proc_macro::TokenStream as TokenStream1;
2
3mod static_acceptors;
4
5pub(crate) mod prelude {
6    pub use proc_macro2::{Span, TokenStream};
7    pub use quote::{quote_spanned, ToTokens};
8    pub use syn::{
9        parse::{Parse, ParseStream},
10        spanned::Spanned,
11    };
12
13    pub trait SpanExt {
14        fn error(self, msg: impl std::fmt::Display) -> syn::Error;
15    }
16
17    impl<T: Into<Span>> SpanExt for T {
18        fn error(self, msg: impl std::fmt::Display) -> syn::Error {
19            syn::Error::new(self.into(), msg)
20        }
21    }
22}
23
24#[proc_macro]
25pub fn static_acceptors(input: TokenStream1) -> TokenStream1 {
26    #![expect(clippy::let_and_return)]
27    let out = static_acceptors::run(syn::parse_macro_input!(input)).into();
28    // eprintln!("{out}");
29    out
30}