serde_valid_derive/
lib.rs

1#[warn(clippy::needless_collect)]
2mod attribute;
3mod derive;
4mod error;
5mod serde;
6mod types;
7mod warning;
8
9use derive::expand_derive;
10use error::to_compile_errors;
11use error::{Error, Errors};
12use proc_macro::TokenStream;
13use proc_macro_error2::proc_macro_error;
14use syn::{parse_macro_input, DeriveInput};
15
16#[proc_macro_derive(Validate, attributes(rule, validate, serde_valid))]
17#[proc_macro_error]
18pub fn derive_validate(tokens: TokenStream) -> TokenStream {
19    let input = parse_macro_input!(tokens as DeriveInput);
20
21    expand_derive(&input)
22        .unwrap_or_else(to_compile_errors)
23        .into()
24}