러스트 초보입니당..
동일한 데이터를 공유하고 일부 행동(함수)을 공유하는 A와 B가 있을 때 보통 어떤식으로 구현하나요? (단일 struct와 일부함수를 공유하는 서로 다른 타입 A, B의 간결한 구현)
대충 아래처럼 하려다가 타입 구분이 안된다는걸 깨달았읍니다.
struct SharedData;
trait BehaviorShare;
trait BehaviorA;
trait BehaviorB;
SharedData에 팬텀 데이터 T를 추가해서
struct TypeA; // 팬텀 데이터 용
struct TypeB; // 팬텀 데이터 용
sturct[T] SharedData[T];
이런식으로 하면 데이터 공유는 되는데, BehaviorShare 구현시에 T를 TypeA나 TypeB로 넣어줘야 해서 공유 된 행동에 대한 구현이 안됩니다.
먼가 잘못 접근하는것 같기도하고..
뭘 할려는지 잘 모르겠는데 좀 더 구체적인 예시를 들어줄순 없을까?
위임하는 코드 짜기 귀찮다는 거 아닐까
흠 데이터는 똑같은 SharedData를 쓰는데 타입에 따라서 동작을 다르게 하고싶다 그중엔 공통된 함수도 있다 내가 제대로 이해했음?
동작이 구현만 다른거면 트레잇으로 추상화 하면 되고 시그니쳐부터 다르면 걍 구조체에 직접 구현하면 되는거아님?