[Rust] 연산자 오버로딩 여러타입 적용

연산자 정의용 트레잇은 제너릭 트레잇이기 때문에, 같은 덧셈 연산자라도 여러개의 타입 버전으로 적용할 수 있다.

impl Add<왼쪽타입> for 오른쪽타입
...

예를 들어보겠다.
좌표값 x,y쌍을 저장하는 단순한 타입이 있다. image

image

저기다 Point+Point 오버로딩과, i32 타입과의 오버로딩이 필요하다면?
이렇게 정의할 수 있다. image

image

그럼 이런식으로 편리하게 사용할 수 있다. image