esexpr_derive/
lib.rs

1//! Derive macros for `ESExpr`
2
3use proc_macro::TokenStream;
4
5mod derive;
6mod literal;
7mod encoded_eq;
8
9#[proc_macro_derive(ESExprCodec, attributes(esexpr))]
10/// Derive macro for `ESExprCodec`
11pub fn derive_esexpr_codec(input: TokenStream) -> TokenStream {
12	TokenStream::from(derive::derive_esexpr_codec_impl(proc_macro2::TokenStream::from(input)))
13}
14
15/// Derive macro for `ESExprEncodedEq`
16#[proc_macro_derive(ESExprEncodedEq)]
17pub fn derive_encoded_eq(input: TokenStream) -> TokenStream {
18	TokenStream::from(encoded_eq::derive_encoded_eq_impl(proc_macro2::TokenStream::from(input)))
19}
20
21#[proc_macro]
22/// Macro for `ESExpr` literal
23pub fn esexpr_literal(input: TokenStream) -> TokenStream {
24	TokenStream::from(literal::esexpr_literal_impl(proc_macro2::TokenStream::from(input)))
25}