use evy_ecs_storage::ShardStorage;
use evy_engine_tasks::{AmxTaskPool, AneTaskPool};
pub struct DispatchCtx<'a> {
pub storage: &'a mut ShardStorage,
pub frame: u64,
pub tick: u64,
pub amx_pool: Option<&'a AmxTaskPool>,
pub ane_pool: Option<&'a AneTaskPool>,
}
impl<'a> DispatchCtx<'a> {
pub fn new(storage: &'a mut ShardStorage, frame: u64, tick: u64) -> Self {
Self {
storage,
frame,
tick,
amx_pool: None,
ane_pool: None,
}
}
pub fn with_amx_pool(mut self, pool: &'a AmxTaskPool) -> Self {
self.amx_pool = Some(pool);
self
}
pub fn with_ane_pool(mut self, pool: &'a AneTaskPool) -> Self {
self.ane_pool = Some(pool);
self
}
}