더북(TheBook)

HashMap에 .contains 메서드를 써서 두 매개변수가 모두 있는지 확인한다.

두 매개변수가 모두 있으면 Result를 반환(return Ok())한다. 바로 돌아가기 위해서 return 키워드를 사용한다.
새로운 Pagination 객체를 만들고 start와 end 번호를 설정한다.

HashMap의 .get 메서드로 옵션을 반환한다.
해당 메서드로는 키가 확실히 존재하는지 보증할 수 없기 때문이다. 몇 줄 전에 HashMap에 매개변수가 두 개인지 먼저 확인했으므로 안전하지 않은 .unwrap을 사용해도 된다. HashMap의 &str 값을 usize 정수 타입으로 파싱한다. 파싱 결과로 Result를 반환하며, 값을 풀어 내거나 파싱에 실패했을 때는 .map_err와 줄 끝의 물음표를 이용해 에러를 반환한다.

그렇지 않은 경우 if 절은 실행되지 않고 바로 Err로 이동하여 사용자 정의 MissingParameters 에러를 반환한다. 여기서 이중 콜론(::)을 사용하여 Error 열거 타입에서 접근한다.

이제 이 메서드를 get_questions 경로 핸들러에서 사용해 이전 코드를 대체한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.