1#![allow(non_camel_case_types)]
2
3#[cfg(feature = "comparable")]
4pub mod comparable;
5
6pub mod v2024_07_0;
7pub use v2024_07_0 as current;
8
9macro_rules! impl_from {
10 ($from:ty => $into:ty as $field:ident) => {
11 impl From<$from> for $into {
12 fn from(value: $from) -> Self {
13 value.$field
14 }
15 }
16 };
17}
18
19pub(crate) use impl_from;
20
21macro_rules! impl_as_ref {
22 ($self:ty) => {
23 impl AsRef<$self> for $self {
24 fn as_ref(&self) -> &$self {
25 &self
26 }
27 }
28 };
29 ($self:ty => $referent:ty as $field:ident) => {
30 impl AsRef<$referent> for $self {
31 fn as_ref(&self) -> &$referent {
32 self.$field.as_ref()
33 }
34 }
35 };
36}
37
38pub(crate) use impl_as_ref;
39
40#[macro_use]
41pub(crate) extern crate macro_rules_attribute;
42pub(crate) use macro_rules_attribute::apply;
43pub(crate) use macro_rules_attribute::attribute_alias;
44
45attribute_alias! {
46 #[apply(structs)] =
47 #[derive(crate::macro_rules_attribute::Custom)]
48 #[cfg_attr(feature = "educe", derive(::educe::Educe))]
49 #[cfg_attr(feature = "educe", educe(Debug, Clone, PartialEq, Eq, Hash))]
50 #[cfg_attr(feature = "arbitrary", derive(::arbitrary::Arbitrary))]
51 #[cfg_attr(feature = "builder", derive(::bon::Builder))]
52 #[cfg_attr(feature = "builder", builder(on(String, into)))]
53 #[cfg_attr(feature = "comparable", derive(::comparable::Comparable))]
54 #[cfg_attr(feature = "dummy", derive(::fake::Dummy))]
55 #[cfg_attr(feature = "proptest", derive(::proptest_derive::Arbitrary))]
56 #[cfg_attr(feature = "schemars", derive(::schemars::JsonSchema))]
57 #[cfg_attr(feature = "serde", derive(::serde::Deserialize))]
58 #[cfg_attr(feature = "serde", derive(::serde::Serialize))]
59 #[cfg_attr(feature = "patch", derive(::struct_patch::Patch))]
60 #[cfg_attr(feature = "validate", derive(::validator::Validate))]
61 #[cfg_attr(all(feature = "patch", feature = "educe"), patch(attribute(derive(::educe::Educe))))]
62 #[cfg_attr(all(feature = "patch", feature = "educe"), patch(attribute(educe(Debug, Clone, PartialEq, Hash, Default))))]
63 #[cfg_attr(all(feature = "patch", feature = "builder"), patch(attribute(derive(::bon::Builder))))]
64 #[cfg_attr(all(feature = "patch", feature = "builder"), patch(attribute(builder(on(String, into)))))]
65 #[cfg_attr(all(feature = "patch", feature = "schemars"), patch(attribute(derive(::schemars::JsonSchema))))]
66 #[cfg_attr(all(feature = "patch", feature = "serde"), patch(attribute(derive(::serde::Deserialize))))]
67 #[cfg_attr(all(feature = "patch", feature = "serde"), patch(attribute(derive(::serde::Serialize))))]
68 #[cfg_attr(all(feature = "patch", feature = "validate"), patch(attribute(derive(::validator::Validate))))]
69 #[cfg_attr(all(feature = "patch", feature = "comparable"), patch(attribute(derive(::comparable::Comparable))))]
70 ;
71
72 #[apply(structs_with_args)] =
73 #[crate::apply(crate::structs)]
74 #[cfg_attr(feature = "clap", derive(::clap::Args))]
75 ;
76
77 #[apply(enums)] =
83 #[cfg_attr(feature = "educe", derive(::educe::Educe))]
84 #[cfg_attr(feature = "educe", educe(Debug, Clone, PartialEq, Eq, Hash))]
85 #[cfg_attr(feature = "arbitrary", derive(::arbitrary::Arbitrary))]
86 #[cfg_attr(feature = "clap", derive(::clap::ValueEnum))]
87 #[cfg_attr(feature = "comparable", derive(::comparable::Comparable))]
88 #[cfg_attr(feature = "dummy", derive(::fake::Dummy))]
89 #[cfg_attr(feature = "proptest", derive(::proptest_derive::Arbitrary))]
90 #[cfg_attr(feature = "schemars", derive(::schemars::JsonSchema))]
91 #[cfg_attr(feature = "serde", derive(::serde::Deserialize))]
92 #[cfg_attr(feature = "serde", derive(::serde::Serialize))]
93 #[cfg_attr(feature = "strum", derive(::strum::AsRefStr))]
94 #[cfg_attr(feature = "strum", derive(::strum::Display))]
95 #[cfg_attr(feature = "strum", derive(::strum::EnumCount))]
96 #[cfg_attr(feature = "strum", derive(::strum::EnumDiscriminants))]
97 #[cfg_attr(feature = "strum", derive(::strum::EnumIs))]
98 #[cfg_attr(feature = "strum", derive(::strum::EnumIter))]
99 #[cfg_attr(feature = "strum", derive(::strum::EnumMessage))]
100 #[cfg_attr(feature = "strum", derive(::strum::EnumProperty))]
101 #[cfg_attr(feature = "strum", derive(::strum::EnumString))]
102 #[cfg_attr(feature = "strum", derive(::strum::EnumTryAs))]
103 #[cfg_attr(feature = "strum", derive(::strum::FromRepr))]
104 #[cfg_attr(feature = "strum", derive(::strum::IntoStaticStr))]
105 #[cfg_attr(feature = "strum", derive(::strum::VariantArray))]
106 #[cfg_attr(feature = "strum", derive(::strum::VariantNames))]
107 ;
108
109 }
117
118#[cfg(feature = "dummy")]
119pub(crate) mod fake;
120
121#[cfg(feature = "proptest")]
122pub(crate) mod strategy;
123
124#[cfg(test)]
125pub(crate) mod testing;