1use {
7 proc_macro::TokenStream,
8 syn::{parse_macro_input, DeriveInput},
9};
10
11mod common;
12mod schema_read;
13mod schema_write;
14
15#[proc_macro_derive(SchemaWrite, attributes(wincode))]
17pub fn derive_schema_write(input: TokenStream) -> TokenStream {
18 let input = parse_macro_input!(input as DeriveInput);
19 match schema_write::generate(input) {
20 Ok(tokens) => tokens.into(),
21 Err(e) => e.write_errors().into(),
22 }
23}
24
25#[proc_macro_derive(SchemaRead, attributes(wincode))]
27pub fn derive_schema_read(input: TokenStream) -> TokenStream {
28 let input = parse_macro_input!(input as DeriveInput);
29 match schema_read::generate(input) {
30 Ok(tokens) => tokens.into(),
31 Err(e) => e.write_errors().into(),
32 }
33}