Trait contract

트레이트 바운드는 호출 전에 필요한 동작을 증명한다

함수 안에서 쓰는 메서드와 연산을 먼저 세고, 그 동작을 제공하는 트레이트를 타입 매개변수에 요구합니다.

need

필요 동작

출력, 비교, 복제처럼 함수 본문이 실제로 호출하는 능력을 적습니다.

bound

약속 부여

T: Display + PartialOrd처럼 타입이 지켜야 할 계약을 문법으로 고정합니다.

impl

구현 확인

호출자가 넣는 구체 타입이 해당 트레이트를 구현했는지 컴파일러가 확인합니다.

return

반환 경계

impl Trait 반환은 숨겨진 하나의 구체 타입으로 모양이 정리되어야 합니다.

읽는 순서

본문의 연산을 먼저 찾고, 그 연산이 어떤 트레이트 바운드로 올라갔는지 봅니다.

고치는 순서

에러가 나면 타입을 바꾸기 전에 누락된 트레이트 구현 또는 과한 바운드부터 줄입니다.

트레이트 바운드는 유연성을 제한하는 문법이 아니라, 제네릭 코드가 기대하는 행동을 컴파일 전에 설명하는 문서입니다.