reifydb_macro_impl/
lib.rs1#![cfg_attr(not(debug_assertions), deny(clippy::disallowed_methods))]
8#![cfg_attr(debug_assertions, warn(clippy::disallowed_methods))]
9#![cfg_attr(not(debug_assertions), deny(warnings))]
10#![allow(clippy::tabs_in_doc_comments)]
11
12pub mod catalog_shape;
13pub mod from_frame;
14pub mod generate;
15pub mod heap_size;
16pub mod operator_state;
17pub mod parse;
18
19use proc_macro2::TokenStream;
20
21pub fn derive_from_frame(input: TokenStream) -> TokenStream {
22 derive_from_frame_with_crate(input, "reifydb_value")
23}
24
25pub fn expand_catalog_shape(input: TokenStream) -> TokenStream {
26 catalog_shape::catalog_shape(input)
27}
28
29pub fn derive_heap_size(input: TokenStream) -> TokenStream {
30 heap_size::derive_heap_size(input)
31}
32
33pub fn operator_state_with_crate(
34 attr: TokenStream,
35 item: TokenStream,
36 crate_path: &str,
37 value_path: &str,
38) -> TokenStream {
39 operator_state::operator_state_impl(attr, item, crate_path, value_path)
40}
41
42pub fn derive_from_frame_with_crate(input: TokenStream, crate_path: &str) -> TokenStream {
43 match parse::parse_struct_with_crate(input, crate_path) {
44 Ok(parsed) => from_frame::expand(parsed),
45 Err(err) => err,
46 }
47}