INNER CODE UNIT · Rust
call
vercel-community/rust · crates/vercel_axum/src/lib.rs:45
fn call(&mut self, event: Event) -> Self::Future {
let (event, _context) = event.into_parts();
let request = serde_json::from_str::<VercelRequest>(&event.body).unwrap_or_default();
let mut builder = axum::http::request::Builder::new()
.method(request.method)
.uri(format!("https://{}{}", request.host, request.path));
for (key, value) in request.headers {
if let Some(k) = key {
builder = builder.header(k, value);
}
}
let request: axum::http::Request<axum::body::Body> = match (request.body, request.encoding)
{
(Some(b), Some(encoding)) if encoding == "base64" => {
let engine = base64::prelude::BASE64_STANDARD;
let body = axum::body::Body::from(engine.decode(b.as_ref()).unwrap_or_default());