Rectangle 데이터
width와 height 필드는 타입의 상태이고, area 계산은 이 상태를 읽는 동작입니다.
Rectangle의 area를 자유 함수에서 메서드로 옮기면, 데이터와 동작이 같은 타입 경계 안에 모이고 호출자는 rect.area()처럼 인스턴스에서 바로 읽습니다.
width와 height 필드는 타입의 상태이고, area 계산은 이 상태를 읽는 동작입니다.
impl Rectangle 안에 area를 두면 Rectangle이 제공하는 기능으로 검색됩니다.
면적 계산은 필드를 읽기만 하므로 self: &Self 축약형인 &self가 맞습니다.
점 문법은 첫 인자로 rect의 참조를 자동으로 넘기고 메서드를 실행합니다.
호출자는 인자를 넘기지 않는 것처럼 보이지만, 컴파일러는 메서드의 self 형태에 맞춰 참조나 가변 참조를 맞춥니다.
rect.width는 필드 접근이고 rect.width()는 메서드 호출입니다. 같은 이름을 쓸 때는 공개 API 의도를 분명히 해야 합니다.