surrealdb_obj_derive_macro/
lib.rs

1//! This crate implements the macro for `surrealdb_obj_derive` and should not be used directly.
2extern crate proc_macro;
3
4use proc_macro::TokenStream;
5use syn::parse_macro_input;
6
7#[proc_macro_derive(SurrealDbObject)]
8pub fn derive_surreal_db_object(item: TokenStream) -> TokenStream {
9    let item = parse_macro_input!(item as proc_macro2::TokenStream);
10
11    match surrealdb_obj_derive_impl::derive_surreal_db_object(item) {
12        Ok(tokens) => tokens.into(),
13        Err(err) => TokenStream::from(err.to_compile_error()),
14    }
15}