use quote::quote;
use super::types::RelationPathSegment;
use super::wrap::wrap_filter_expr_tokens;
mod functions;
mod methods;
pub(super) use functions::{
append_boolean_filter_functions, append_optional_filter_functions,
append_optional_string_filter_functions, append_required_filter_functions,
append_required_text_filter_functions,
};
pub(super) use methods::{
append_boolean_builder_methods, append_optional_builder_methods,
append_optional_string_builder_methods, append_required_builder_methods,
append_required_text_builder_methods,
};
fn op_expr(
field_type: &proc_macro2::TokenStream,
column: &str,
op_call: proc_macro2::TokenStream,
wrappers: &[RelationPathSegment],
) -> proc_macro2::TokenStream {
wrap_filter_expr_tokens(
quote! {
::cratestack::FilterExpr::from(
::cratestack::FieldRef::<(), #field_type>::new(#column).#op_call
)
},
wrappers,
)
}