serde_valid_derive/
lib.rs1#[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}