더북(TheBook)
#[tokio::main]
async fn main() {
    let get_items = warp::get() ➍
        .and(warp::path("questions"))
        .and(warp::path::end()) ➎
        .and_then(get_questions);

    let routes = get_items; ➏

    warp::serve(routes) ➐
        .run(([127, 0, 0, 1], 3030))
        .await;
}

➊ Warp가 사용할 수 있게 회신과 거부를 반환하는 첫 번째 경로 핸들러를 만든다.

➋ 요청하는 클라이언트에 반환할 새로운 question을 생성한다.

➌ Warp의 json 응답을 사용해 question의 JSON 버전을 반환한다.

➍ 하나 이상의 필터를 결합하는 Warp의 .and 함수를 사용해 큰 필터 하나를 생성하고 get_items에 할당한다.

➎ path::end를 써서 정확히 /questions(예를 들어 /questions/further/params 같은 것은 안 됨)에서만 수신을 받겠다고 신호를 보낸다.

➏ 나중의 편의를 위해 경로 변수 routes를 정의한다.

➐ routes 필터를 Warp의 serve 메서드로 전달하고 서버를 시작한다.