У меня есть важный тип - CoreEvent. он перечисление всех возможных событий.
Он много где обрабатываются и везде его обработка выглядит как огромная функция с огромным match хотя бы строк на 150:
и еще в паре мест.
Вроде бы это мне пока особо и не мешает, но как-то раздражает.
(и кроме CoreEvent еще есть похожий Command с теми же проблемами).
Вот я думаю, может мне варианты этого перечисления вынести в честные структуры, сделать для каждого такого match свой типаж и реализовать его для каждого события/команды?
Сейчас есть, например,
InternalState::apply_event(&mut self, event: CoreEvent)
а будет какой-нибудь
impl InternalStateEvent from CoreEventMove {
fn apply(&self, state: &mut InternalState() {....}
}
У меня есть важный тип - CoreEvent. он перечисление всех возможных событий.
Он много где обрабатываются и везде его обработка выглядит как огромная функция с огромным match хотя бы строк на 150:
и еще в паре мест.
Вроде бы это мне пока особо и не мешает, но как-то раздражает.
(и кроме CoreEvent еще есть похожий Command с теми же проблемами).
Вот я думаю, может мне варианты этого перечисления вынести в честные структуры, сделать для каждого такого match свой типаж и реализовать его для каждого события/команды?
Сейчас есть, например,
InternalState::apply_event(&mut self, event: CoreEvent)а будет какой-нибудь