더북(TheBook)

코드 4-24에서 볼 수 있듯이 Warp 프레임워크에서 Reject는 딱 한 줄로 구현할 수 있다. Warp의 Reject 트레이트는 마커 트레이트(marker trait)4이다. 내용이 비어 있지만 특정 속성을 충족한다는 일종의 확인을 컴파일러에 알려주어야 할 때 마커 트레이트를 사용한다. 러스트 문서(https://doc.rust-lang.org/std/marker/index.html)와 트레이트에 대한 공식 블로그 게시물(https://blog.rust-lang.org/2015/05/11/traits.html)에 마커에 대한 내용이 자세히 실려 있다.

코드 4-24 사용자 정의 에러를 Warp의 Reject 트레이트로 구현하기

...
impl Reject for Error {}
...

이것으로 Warp의 경로 핸들러에서 에러를 받을 수 있다. 여기서 다음 두 가지를 보완해야 한다.

전용 함수에서 매개변수 처리 부분 추출하기

get_questions 경로 핸들러 내에서 함수를 호출하여 발생한 에러를 return_error 함수로 보내 처리하기

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