1#[cfg(doctest)]
36#[doc = include_str!("../README.md")]
37struct _ReadMeDocTests;
38
39pub(crate) mod common;
40mod de;
41mod derive;
42mod options;
43mod ser;
44mod utils;
45
46use de::{DeriveDeserializationGroup, DeriveDeserialize};
47use derive::{DeriveError, DeriveMacro, DeriveMacroExt, DeriveResult};
48use ser::{DeriveSerializationGroup, DeriveSerialize, DeriveSerializeAttribute};
49
50#[doc = include_str!("./ser/Serialize.md")]
51#[proc_macro_derive(Serialize, attributes(xelement, xattribute, xgroup, xvalue))]
52pub fn derive_serialize_fn(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
53 DeriveSerialize::derive(item)
54}
55
56#[doc = include_str!("./ser/SerializeAttribute.md")]
57#[proc_macro_derive(SerializeAttribute, attributes(xattribute))]
58pub fn derive_serialize_attribute_fn(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
59 DeriveSerializeAttribute::derive(item)
60}
61
62#[doc = include_str!("./de/Deserialize.md")]
63#[proc_macro_derive(Deserialize, attributes(xelement, xattribute, xgroup, xvalue))]
64pub fn derive_deserialize_fn(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
65 DeriveDeserialize::derive(item)
66}
67
68#[doc = include_str!("./ser/SerializationGroup.md")]
69#[proc_macro_derive(SerializationGroup, attributes(xelement, xattribute, xgroup, xvalue))]
70pub fn derive_serialization_group_attribute_fn(
71 item: proc_macro::TokenStream,
72) -> proc_macro::TokenStream {
73 DeriveSerializationGroup::derive(item)
74}
75
76#[doc = include_str!("./de/DeserializationGroup.md")]
77#[proc_macro_derive(DeserializationGroup, attributes(xelement, xattribute, xgroup, xvalue))]
78pub fn derive_deserialization_group_fn(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
79 DeriveDeserializationGroup::derive(item)
80}