macros.rs
macro_rules! impl_serialize {
// Handle no extra const generics
($container:ident, $field_name:ident) => {
impl_serialize!($container, $field_name,);
};
($container:ident, $field_name:ident, $($const_name:ident: $const_type:ty),*) => {
impl<M: crate::Localize + serde::Serialize, $(const $const_name: $const_type),*> serde::Serialize for $container<M, $($const_name),*> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
self.$field_name.serialize(serializer)
}
}
// impl<M: crate::Localize + std::fmt::Debug, $(const $const_name: $const_type),*> std::fmt::Debug for $container<M, $($const_name),*> {
// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
// self.$field_name.fmt(f)
// }
// }
};
}
// Re-export the macro so other modules can use it
pub(crate) use impl_serialize;