Skip to main content

opensearch_macro/
lib.rs

1mod models;
2mod opensearch_record;
3
4use darling::FromDeriveInput;
5use models::OpenSearchDeriveInput;
6use proc_macro::TokenStream;
7use quote::ToTokens;
8use syn::parse_macro_input;
9
10#[proc_macro_derive(OpenSearch, attributes(os))]
11pub fn derive_opensearch_record(input: TokenStream) -> TokenStream {
12  let input = parse_macro_input!(input as syn::DeriveInput);
13  let data = OpenSearchDeriveInput::from_derive_input(&input);
14  let stream = match data {
15    Ok(data) => data.into_token_stream(),
16    Err(err) => err.write_errors(),
17  };
18  stream.into()
19}