impl bounds

조건부 impl은 만족 타입만 열고 blanket impl은 넓은 범위에 적용한다

trait bound를 impl에 붙이면 조건을 만족하는 타입에만 메서드가 생기고, 모든 만족 타입에 넓게 구현할 수도 있다.

조건부 impl
  • impl<T: Display> Pair<T>
  • 조건 만족 시 메서드 제공
  • 타입별 능력 제한
  • API가 좁고 명확
blanket impl
  • impl<T: Display> ToString for T
  • 조건 만족 타입 전체 적용
  • 중복 구현 감소
  • 충돌 규칙 주의
구분의미판단
메서드 제한T: Display출력 가능한 타입만
넓은 구현blanket impl생태계 전반에 적용
coherence중복/충돌 방지orphan rule과 함께 이해

핵심 조건부 impl은 타입이 특정 능력을 가질 때만 API를 열어 주는 문이다.