use crate::*;
pub(crate) fn host_macro(attr: TokenStream, item: TokenStream, position: Position) -> TokenStream {
let multi_host: MultiHostData = parse_macro_input!(attr as MultiHostData);
inject(position, item, |context| {
let statements = multi_host.host_values.iter().map(|host_value| {
quote! {
if #context.get_request().get_host() != #host_value {
return;
}
}
});
quote! {
#(#statements)*
}
})
}
pub(crate) fn reject_host_macro(
attr: TokenStream,
item: TokenStream,
position: Position,
) -> TokenStream {
let multi_host: MultiHostData = parse_macro_input!(attr as MultiHostData);
inject(position, item, |context| {
let statements = multi_host.host_values.iter().map(|host_value| {
quote! {
if #context.get_request().get_host() == #host_value {
return;
}
}
});
quote! {
#(#statements)*
}
})
}