➊ 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 경로 핸들러에서 사용해 이전 코드를 대체한다.