1use proc_macro::TokenStream;
9use queryweave_codegen::conventions::DefaultConventions;
10
11#[proc_macro_derive(
15 Filters,
16 attributes(queryweave, filter, sortable, filters, equivalent_field)
17)]
18pub fn derive_filters(input: TokenStream) -> TokenStream {
19 queryweave_codegen::filters::<DefaultConventions>(input.into()).into()
20}
21
22#[cfg(feature = "merge-patch")]
23#[proc_macro_derive(MergePatch, attributes(queryweave, merge_patch))]
26pub fn derive_merge_patch(input: TokenStream) -> TokenStream {
27 queryweave_codegen::merge_patch::<DefaultConventions>(input.into()).into()
28}
29
30#[cfg(feature = "merge-patch")]
31#[proc_macro_derive(MergePatchNullableFields, attributes(queryweave, merge_patch))]
34pub fn derive_merge_patch_nullable_fields(input: TokenStream) -> TokenStream {
35 queryweave_codegen::merge_patch_nullable_fields::<DefaultConventions>(input.into()).into()
36}
37
38#[proc_macro_derive(RawValue, attributes(queryweave))]
41pub fn derive_raw_value(input: TokenStream) -> TokenStream {
42 queryweave_codegen::raw_value::<DefaultConventions>(input.into()).into()
43}
44
45#[cfg(feature = "merge-patch")]
46#[proc_macro_derive(
52 ValidateNonNullable,
53 attributes(queryweave, validate_non_nullable, equivalent_field)
54)]
55pub fn derive_validate_non_nullable(input: TokenStream) -> TokenStream {
56 queryweave_codegen::validate_non_nullable::<DefaultConventions>(input.into()).into()
57}
58
59#[proc_macro_derive(AppendToQuery, attributes(queryweave, append_to_query))]
62pub fn derive_append_to_query(input: TokenStream) -> TokenStream {
63 queryweave_codegen::append_to_query::<DefaultConventions>(input.into()).into()
64}
65
66#[proc_macro_derive(AppendConditions, attributes(queryweave, append_conditions))]
69pub fn derive_append_conditions(input: TokenStream) -> TokenStream {
70 queryweave_codegen::append_conditions::<DefaultConventions>(input.into()).into()
71}
72
73#[proc_macro_derive(Columns, attributes(queryweave, columns, domain_field))]
76pub fn derive_columns(input: TokenStream) -> TokenStream {
77 queryweave_codegen::columns::<DefaultConventions>(input.into()).into()
78}