러스트에서 사용자 정의 데이터를 다음과 같은 단계로 만든다.
1 struct Question {...}으로 새 구조체를 만든다.
2 타입이 있는 필드를 해당 구조체에 추가한다.
3 러스트는 생성자에 기본 이름 같은 것이 없으므로2 new라는 메서드를 사용하는 것이 가장 좋다.
4 impl 블록을 사용하여 사용자 정의 타입에 동작을 추가한다.
5 이 타입의 새로운 객체를 인스턴스화하려면 Self 또는 Question을 반환해야 한다.
또한, 뉴 타입 패턴(New Type pattern, http://mng.bz/o5Zr)의 사용법을 볼 수 있는데, 단순히 문자열을 질문 ID로 사용하는 것이 아니라 QuestionId 구조체로 캡슐화한다. 매개변수를 전달하거나 새 질문을 만들 때 문자열을 전달하는 대신 새 QuestionId를 만들어야 한다. 사용자 정의 타입을 사용하면 그 목적이 명확해지며, 이는 컴파일러가 강제할 수 있다.