нужно пихать сообщеньки разных типов, фильтровать только нужные, итерировать это всё быстро.
Ну что-то вроде Vec<Box<Any>>, но с меньшим количеством кешмисов.
Часто встречал подход, когда сообщения пересылаются в виде строк, видимо, чтобы легче было пихать данные любого типа в одну очередь, или даже для улучшения переносимости, или, как в случае с ms, констант, как с возвращаемыми кодами статусов или ошибок. Первый подход даже среди растовых библиотек часто встречается. Правда, упаковка-распаковка типа в строку вообще медленная по идее... ECS-подход вряд ли сработает, так как там поддерживается контейнер на каждый тип компонента, и там запросы надо делать вручную, для сообщений не очень удобно, наверное. Можно доверить распределение и рассылку сообщений системам так-то, подход интересный. Тогда можно напрямую у bevy взять scheduler, он хорошо работает и без стандартных компонент вроде окна и прочего.
Строки СЛИШКОМ медленно. И вообще всё, что угодно, связанное с сериализацией будет медленно. Там сложность O(n*m) получается.
Обсуждают сегодня