#[macro_export]
macro_rules! generate_get_response {
($name:ident, $container_name:literal, $container_type:ident, $list_name:literal) => {
#[derive(serde::Deserialize, Clone)]
pub struct $name<T> {
#[serde(rename = "COMRESULT")]
pub com_result: $crate::responses::ComResult,
#[serde(rename = $container_name)]
pub container: Option<$container_type<T>>,
}
#[derive(serde::Deserialize, Clone)]
pub struct $container_type<T> {
#[serde(rename = $list_name)]
pub list: Option<Vec<T>>,
}
impl<T> $crate::cursor_response::HasList<T> for $name<T> {
fn into_items(self) -> Option<Vec<T>> {
if let Some(container) = self.container {
container.list
} else {
None
}
}
}
impl<T> $crate::cursor_response::HasComResult for $name<T> {
fn comresult(&self) -> &wwsvc_rs::responses::ComResult {
&self.com_result
}
}
};
}
#[macro_export]
macro_rules! collection {
($($k:expr => $v:expr),* $(,)?) => {{
core::convert::From::from([$(($k, $v),)*])
}};
($($v:expr),* $(,)?) => {{
core::convert::From::from([$($v,)*])
}};
}