.and(store_filter)로 필터를 필터 체인에 연결한다. Warp 프레임워크는 이제 저장소 객체를 경로 핸들러에 추가할 것이다. 즉, get_questions 함수는 매개변수 하나를 받게 된다. 그리고 이제 설정된 질문을 반환하는 대신 저장소에서 읽는다.
이 변경으로 테스트용으로 넣었던 질문을 만드는 코드를 삭제할 수 있고, Question의 impl 블록과 에러 처리도 삭제할 수 있다. 삭제된 코드는 취소선으로 표시했다.
코드 4-14 get_questions 경로 핸들러로 저장소에서 질문 읽기
use std::str::FromStr;
use std::io::{Error, ErrorKind};
...
// Clone 트레이트를 추가해서
// get_questions 함수에서 사용
#[derive(Deserialize, Serialize, Debug, Clone)]
struct Question {
id: QuestionId,
title: String,
content: String,
tags: Option<Vec<String>>,
}