Skip to main content

welds_macros/blocks/impl_struct/
fn_where_col.rs

1use crate::info::Info;
2use proc_macro2::TokenStream;
3use quote::quote;
4
5pub(crate) fn write(info: &Info) -> TokenStream {
6    let schema = &info.schemastruct;
7    let wp = &info.welds_path;
8
9    quote! {
10
11
12
13    pub fn where_col(
14        lam: impl Fn(#schema) -> Box<dyn #wp::query::clause::ClauseAdder>,
15    ) -> #wp::query::builder::QueryBuilder<Self>
16    where
17        #schema: #wp::model_traits::TableColumns,
18        Self: Send
19    {
20        let select = #wp::query::builder::QueryBuilder::new();
21        select.where_col(lam)
22    }
23
24
25
26
27    }
28}