polars_rows_iter_derive/
lib.rs1mod context;
6mod field_info;
7mod from_dataframe_attribute;
8mod from_dataframe_row_derive;
9mod impl_iter_from_column_for_type;
10mod tuple_iterators;
11
12#[proc_macro_derive(FromDataFrameRow, attributes(column, from_dataframe))]
13pub fn from_dataframe_row_derive_macro(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
14 let ast: syn::DeriveInput = match syn::parse2(input.into()) {
15 Ok(ast) => ast,
16 Err(e) => return e.into_compile_error().into(),
17 };
18 from_dataframe_row_derive::from_dataframe_row_derive_impl(ast)
19 .unwrap_or_else(syn::Error::into_compile_error)
20 .into()
21}
22
23#[proc_macro]
24pub fn iter_from_column_for_type(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
25 let ident: syn::Ident = match syn::parse(input) {
26 Ok(ident) => ident,
27 Err(e) => return e.into_compile_error().into(),
28 };
29 impl_iter_from_column_for_type::create_impl_for(ident)
30}
31
32#[proc_macro]
33pub fn impl_tuple_rows_iter(input_stream: proc_macro::TokenStream) -> proc_macro::TokenStream {
34 let input = syn::parse_macro_input!(input_stream as tuple_iterators::Input);
35 tuple_iterators::create_iterators_and_macro(input.count).into()
36}