Skip to main content

serde_many_derive/
lib.rs

1mod ast;
2mod attrs;
3mod expand;
4
5use proc_macro::TokenStream;
6use serde_derive_internals::Derive;
7use syn::{parse_macro_input, DeriveInput};
8
9#[proc_macro_derive(SerializeMany, attributes(serde_many, serde))]
10pub fn derive_serialize(input: TokenStream) -> TokenStream {
11    let input = parse_macro_input!(input as DeriveInput);
12
13    expand::derive_serde(input, Derive::Serialize)
14        .unwrap_or_else(|e| e.to_compile_error())
15        .into()
16}
17
18#[proc_macro_derive(DeserializeMany, attributes(serde_many, serde))]
19pub fn derive_deserialize(input: TokenStream) -> TokenStream {
20    let input = parse_macro_input!(input as DeriveInput);
21
22    expand::derive_serde(input, Derive::Deserialize)
23        .unwrap_or_else(|e| e.to_compile_error())
24        .into()
25}