#![deny(warnings)] use serde_derive::{Deserialize, Serialize}; use warp::Filter; #[derive(Deserialize, Serialize)] struct Employee { name: String, rate: u32, } #[tokio::main] async fn main() { pretty_env_logger::init(); // POST /employees/:rate {"name":"Sean","rate":2} let promote = warp::post() .and(warp::path("employees")) .and(warp::path::param::()) // Only accept bodies smaller than 16kb... .and(warp::body::content_length_limit(1024 * 16)) .and(warp::body::json()) .map(|rate, mut employee: Employee| { employee.rate = rate; warp::reply::json(&employee) }); warp::serve(promote).run(([127, 0, 0, 1], 3030)).await }