in yaml_test_runner/src/step/do.rs [233:271]
fn to_tokens(&self, tokens: &mut Tokens) {
let function = &self.function;
let parts = &self.parts;
let params = &self.params;
let body = &self.body;
let headers: Vec<Tokens> = self
.headers
.iter()
.map(|(k, v)| {
// header names **must** be lowercase to satisfy Header lib
let k = k.to_lowercase();
// handle "set" value in headers
if let Some(c) = SET_DELIMITED_REGEX.captures(v) {
let token = syn::Ident::from(c.get(1).unwrap().as_str());
let replacement = SET_DELIMITED_REGEX.replace_all(v, "{}");
quote! { .header(
HeaderName::from_static(#k),
HeaderValue::from_str(format!(#replacement, #token.as_str().unwrap()).as_ref())?)
}
} else {
quote! { .header(
HeaderName::from_static(#k),
HeaderValue::from_static(#v))
}
}
})
.collect();
tokens.append(quote! {
let response = client.#function(#parts)
#(#headers)*
#params
#body
.send()
.await?;
});
}