더북(TheBook)
#[derive(Serialize, Debug, Deserialize)]
struct Question {
    id: QuestionId,
    title: String,
    content: String,
    tags: Option<Vec<String>>,
}

#[derive(Serialize, Debug, Clone, PartialEq, Eq, Hash, Deserialize)]
struct QuestionId(String);
...

Store 구현에서 add_question을 제거하고 새로운 생성자에서 바로 init를 호출한다. init 안에서 반환 값을 Self에서 HashMap으로 바꾼다. init 메서드의 반환 값을 Storequestions 속성에 직접 할당한다.

또한, Serde의 Deserialize 트레이트를 Question, QuestionId 구조체에 derive로 구현해야 한다. JSON 파일에서 질문을 읽어야 하기 때문에 러스트가 JSON을 역직렬화하는 방법과 이를 질문 객체로 구성하는 방법을 알고 있어야 한다. 다음 단계에서 스토리지를 설정하고 경로 핸들러로 저장소에서 읽는 방법을 다룰 것이다.

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