Skip to main content

typed_arrow_derive/
lib.rs

1//! Proc-macros for typed-arrow: `#[derive(Record)]` and `#[derive(Union)]`.
2
3mod attrs;
4mod record;
5mod union;
6
7use proc_macro::TokenStream;
8use syn::{DeriveInput, parse_macro_input};
9
10#[proc_macro_derive(Record, attributes(nested, schema_metadata, metadata, record))]
11pub fn derive_record(input: TokenStream) -> TokenStream {
12    let input = parse_macro_input!(input as DeriveInput);
13    record::derive_record(&input)
14}
15
16#[proc_macro_derive(Union, attributes(union))]
17pub fn derive_union(input: TokenStream) -> TokenStream {
18    let input = parse_macro_input!(input as DeriveInput);
19    union::derive_union(&input)
20}