러스트 초보입니당..

동일한 데이터를 공유하고 일부 행동(함수)을 공유하는 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로 넣어줘야 해서 공유 된 행동에 대한 구현이 안됩니다.


먼가 잘못 접근하는것 같기도하고..