Open yyu-nim opened 2 years ago
https://github.com/yyu-nim/poseidonos-rtype/pull/11
몇가지 안을 비교해보고, 한가지 구현해 볼 것.
Callback 파라미터 & 리턴을 enum 타입으로 묶어서 처리
enum CallbackParam { CallbackParam1(~, ~, ~), CallbackParam2(~, ~), ... } enum CallbackResponse { CallbackResponse1(~, ~, ~, ~), CallbackResponse2(~), ... } trait Callback { fn Execute(&self, param: CallbackParam) -> CallbackResponse; }
Trait의 associated type 으로 처리
trait Callback { type CallbackParam; type CallbackResponse; fn Execute(&self, param: Self::CallbackParam) -> Self::CallbackResponse; }
Any 타입 활용해서 upcasting & downcasting 하기
trait Callback { fn Execute(&self, param: Any) -> Any; }
https://github.com/yyu-nim/poseidonos-rtype/pull/11
몇가지 안을 비교해보고, 한가지 구현해 볼 것.
Callback 파라미터 & 리턴을 enum 타입으로 묶어서 처리
Trait의 associated type 으로 처리
Any 타입 활용해서 upcasting & downcasting 하기