새로 만든 Error 열거 타입에 Debug 트레이트 구현을 파생시켰고, 해당 열거 타입에 두 가지 변형(Variant, 열거 값이라고도 부름) ParseError와 MissingParameters를 추가했다. 이전 에러 메시지에서 본 것처럼 러스트가 문자열을 숫자로 파싱할 수 없으면 ParseIntError를 반환한다. 우리는 이 메시지를 사용자에게 보내서 무엇이 잘못되었는지 알리고자 한다. 반환된 값을 Error 타입의 괄호 안에 캡슐화하면 된다.
코드에서 이러한 사용자 정의 에러를 구현하려면 다음 두 단계를 추가해야 한다.
1 Display 트레이트를 구현해 러스트가 에러를 문자열로 출력하게 한다.
2 Warp 경로 핸들러에서 반환하도록 에러에 Warp의 Reject 트레이트를 구현한다.
사용자 정의 타입에 새로운 기능을 추가하거나, 다른 프레임워크와 더불어 작동시킬 때는 필요한 트레이트를 구현하면 된다. 트레이트를 구현하는 것은 러스트 세계에서 새로운 행동이나 기술을 배우는 것과 같다. 표준 라이브러리의 Display 트레이트부터 시작한다.