더북(TheBook)

그러나 복구 핸들러에서 사용자 정의 에러를 반환하려면 먼저 세 가지 작업을 수행해야 한다.

1 사용자 정의 에러 타입을 만든다.

2 이 타입에 Warp의 Reject 트레이트를 구현한다.

3 경로 핸들러에서 사용자 정의 타입을 반환한다.

결과 코드는 다음과 같다.

코드 3-8 사용자 정의 에러를 더하고 반환하기

use warp::{Filter, reject::Reject};

...

#[derive(Debug)]
struct InvalidId;
impl Reject for InvalidId {}

async fn get_questions() -> Result<impl warp::Reply, warp::Rejection> {
    let question = Question::new(
        QuestionId::from_str("1").expect("No id provided"),
        "First Question".to_string(),
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.