일단 에러를 수정한 다음 처음에 에러가 발생한 이유를 알아보기로 하자. 다음과 같이 Eq, Hash를 derive 매크로에 추가한다.
코드 4-5 derive 매크로에 비교 트레이트 구현하기
#[derive(Serialize, Debug, Clone, Eq, Hash)]
struct QuestionId(String);
...
그러나 러스트 컴파일러는 여전히 에러를 낸다. 두 트레이트를 추가하면 새로운 에러 메시지가 나온다.
error[E0277]: can't compare `QuestionId` with `QuestionId`
--> src/main.rs:14:35
|
14 | #[derive(Serialize, Debug, Clone, Eq, Hash)]
| ^^ no implementation
for `QuestionId == QuestionId`
|
::: /Users/bgruber/.rustup/toolchains/
stable-x86_64-apple-darwin/lib/rustlib/src/
rust/library/core/src/cmp.rs:264:15