러스트 문서에 있는 코드 예제(코드 2-15)에서 자신의 타입으로 어떻게 구현할지 찬찬히 알아낼 수 있다. 코드 예제를 복사하고 예제 구조체(이 경우 Position)를 Question으로 대체한다. 다음은 Question의 Display 트레이트 구현 코드이며, 변경 사항은 음영으로 표시하였다.
impl std::fmt::Display for Question { fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> { write!( f, "{}, title: {}, content: {}, tags: {:?}", self.id, self.title, self.content, self.tags ) } }
println! 매크로로 질문을 출력하면 위에 구현한 fmt 함수를 호출한다. fmt 함수는 콘솔에 텍스트를 출력하는 write! 매크로를 호출하며, 여기에 출력할 내용을 정의한다.