#[doc(hidden)]
#[macro_export]
macro_rules! __vld_cached {
($schema:expr) => {{
static __VLD_CELL: $crate::__private::SchemaCell = $crate::__private::SchemaCell::new();
__VLD_CELL.get(|| $schema)
}};
}
#[macro_export]
macro_rules! deserialize_fn {
($(#[$attr:meta])* $vis:vis fn $name:ident -> $ty:ty = $schema:expr $(;)?) => {
$(#[$attr])*
$vis fn $name<'de, D>(deserializer: D) -> ::std::result::Result<$ty, D::Error>
where
D: $crate::serde::Deserializer<'de>,
{
$crate::de::with($crate::__vld_cached!($schema), deserializer)
}
};
}
#[cfg(feature = "openapi")]
#[doc(hidden)]
#[macro_export]
macro_rules! __vld_if_openapi {
($($tt:tt)*) => { $($tt)* };
}
#[cfg(not(feature = "openapi"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __vld_if_openapi {
($($tt:tt)*) => {};
}
#[cfg(feature = "openapi")]
#[doc(hidden)]
#[macro_export]
macro_rules! __vld_nested_schema_fn {
($ty:ty) => {
Some(<$ty>::json_schema as fn() -> $crate::serde_json::Value)
};
}
#[cfg(not(feature = "openapi"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __vld_nested_schema_fn {
($ty:ty) => {
None
};
}
#[cfg(feature = "openapi")]
#[doc(hidden)]
#[macro_export]
macro_rules! __vld_nested_collect_fn {
($ty:ty) => {
Some(
<$ty>::__vld_collect_nested_schemas
as fn(&mut ::std::vec::Vec<$crate::openapi::NestedSchemaEntry>),
)
};
}
#[cfg(not(feature = "openapi"))]
#[doc(hidden)]
#[macro_export]
macro_rules! __vld_nested_collect_fn {
($ty:ty) => {
None
};
}