macro_rules! impl_str_field_getter {
($method:ident, $field:ident) => {
fn $method(&self) -> &str {
&self.$field
}
};
}
macro_rules! impl_optional_str_field_getter {
($method:ident, $field:ident) => {
fn $method(&self) -> Option<&str> {
self.$field.as_ref().map(|s| s.as_str())
}
};
}
macro_rules! impl_optional_str_iter_field_getter {
($method:ident, $field:ident) => {
fn $method(&self) -> Option<impl Iterator<Item = &str> + '_> {
self.$field.as_ref().map(|v| v.iter().map(|x| x.as_str()))
}
};
}
macro_rules! impl_str_iter_field_getter {
($method:ident, $field:ident) => {
fn $method(&self) -> impl Iterator<Item = &str> + '_ {
self.$field.iter().map(|x| x.as_str())
}
};
}
pub(crate) use impl_optional_str_field_getter;
pub(crate) use impl_optional_str_iter_field_getter;
pub(crate) use impl_str_field_getter;
pub(crate) use impl_str_iter_field_getter;