1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| use serde::{Deserialize, Serialize}; use warp::Filter;
#[derive(Debug, Deserialize, Serialize)] struct Person { name: String, age: i64, }
#[derive(Debug, Deserialize, Serialize)] struct Demo { name: String, person: Person, shape: Shape, }
#[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "lowercase", tag = "shape")] enum Shape { Circle { radius: f64, },
Rectangle { length: f64, width: f64, }, }
#[tokio::main] async fn main() { let hello = warp::path!("json") .map(|| warp::reply::json( &Demo { name: "geek".to_string(), person: Person { name: "dashen".to_string(), age: 28, }, shape: Shape::Circle { radius: 3.5 }, } ));
warp::serve(hello) .run(([127, 0, 0, 1], 3030)).await; }
|