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}