코드 4-31 저장소에 질문을 추가하는 경로 핸들러 추가하기
...
async fn add_question(
store: Store,
question: Question,
) -> Result<impl warp::Reply, warp::Rejection> {
store.questions.write().await.insert(question.id.clone(), question);
Ok(warp::reply::with_status(
"Question added",
StatusCode::OK,
))
}
...
insert 메서드는 해시 맵의 인덱스와 저장하려는 값, 두 인수를 받는다. 여기에서도 러스트의 소유권 원칙을 볼 수 있다. 첫 번째 매개변수는 질문 ID에 접근하는데, 이렇게 하면 질문의 소유권을 해시 맵의 insert 메서드로 보낸다. 함수 다른 곳에서 질문을 사용하지 않는다면 괜찮겠지만, 두 번째 인수로 질문을 받아 해시 맵에 저장하려고 한다.