Skip to main content

reifydb_macro_impl/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2026 ReifyDB
3
4#![cfg_attr(not(debug_assertions), deny(clippy::disallowed_methods))]
5#![cfg_attr(debug_assertions, warn(clippy::disallowed_methods))]
6#![cfg_attr(not(debug_assertions), deny(warnings))]
7#![allow(clippy::tabs_in_doc_comments)]
8
9pub mod catalog_shape;
10pub mod from_frame;
11pub mod generate;
12pub mod heap_size;
13pub mod key;
14pub mod key_conformance;
15pub mod operator_state;
16pub mod parse;
17pub mod typed_key;
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 derive_typed_key(input: TokenStream) -> TokenStream {
34	typed_key::derive_typed_key(input)
35}
36
37pub fn derive_key(input: TokenStream) -> TokenStream {
38	key::derive_key(input)
39}
40
41pub fn operator_state_with_crate(attr: TokenStream, item: TokenStream, crate_path: &str) -> TokenStream {
42	operator_state::operator_state_impl(attr, item, crate_path)
43}
44
45pub fn derive_from_frame_with_crate(input: TokenStream, crate_path: &str) -> TokenStream {
46	match parse::parse_struct_with_crate(input, crate_path) {
47		Ok(parsed) => from_frame::expand(parsed),
48		Err(err) => err,
49	}
50}