parsely_macro/
lib.rs

1use proc_macro::TokenStream;
2use syn::parse_macro_input;
3
4#[proc_macro_derive(ParselyRead, attributes(parsely, parsely_read))]
5pub fn derive_parsely_read(item: TokenStream) -> TokenStream {
6    let item = parse_macro_input!(item as proc_macro2::TokenStream);
7
8    match parsely_impl::derive_parsely_read(item) {
9        Ok(tokens) => tokens.into(),
10        Err(err) => err.to_compile_error().into(),
11    }
12}
13
14#[proc_macro_derive(ParselyWrite, attributes(parsely, parsely_write))]
15pub fn derive_parsely_write(item: TokenStream) -> TokenStream {
16    let item = parse_macro_input!(item as proc_macro2::TokenStream);
17
18    match parsely_impl::derive_parsely_write(item) {
19        Ok(tokens) => tokens.into(),
20        Err(err) => err.to_compile_error().into(),
21    }
22}