use proc_macro2::TokenStream;
use quote::quote;
use syn::{LitStr, parse2};
pub(crate) fn expand(input: TokenStream) -> syn::Result<TokenStream> {
let _package: LitStr = parse2(input).map_err(|_| {
syn::Error::new(
proc_macro2::Span::call_site(),
"obs::include_schemas! requires a single string-literal package name, e.g. \
`obs::include_schemas!(\"myapp.v1\")`",
)
})?;
Ok(quote! {
#[allow(
clippy::all,
clippy::pedantic,
clippy::restriction,
clippy::indexing_slicing,
clippy::expect_used,
clippy::unwrap_used,
clippy::panic,
clippy::disallowed_methods,
clippy::disallowed_types,
non_camel_case_types,
non_snake_case,
dead_code,
unused_imports,
missing_docs,
)]
mod __obs_generated {
::std::include!(::std::concat!(::std::env!("OUT_DIR"), "/obs_buffa.rs"));
::std::include!(::std::concat!(::std::env!("OUT_DIR"), "/obs/schemas.rs"));
::std::include!(::std::concat!(::std::env!("OUT_DIR"), "/obs/builders.rs"));
::std::include!(::std::concat!(::std::env!("OUT_DIR"), "/obs/lints.rs"));
::std::include!(::std::concat!(::std::env!("OUT_DIR"), "/obs/arrow_schema.rs"));
}
#[allow(unused_imports)]
pub use __obs_generated::*;
})
}