use super::{AcceleratorId, AcceleratorKind, AsyncLaneId, ProcessId, ServerId, ThreadId};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ThreadRoute {
pub process: ProcessId,
pub thread: ThreadId,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ProcessRoute {
pub process: ProcessId,
pub thread: ThreadId,
pub async_lane: Option<AsyncLaneId>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ServerRoute {
pub server: ServerId,
pub process: ProcessId,
pub thread: ThreadId,
pub async_lane: Option<AsyncLaneId>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct AcceleratorRoute {
pub kind: AcceleratorKind,
pub accelerator: AcceleratorId,
pub process: ProcessId,
pub thread: ThreadId,
pub async_lane: Option<AsyncLaneId>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SchedulerRoute {
Thread(ThreadRoute),
Process(ProcessRoute),
Server(ServerRoute),
Accelerator(AcceleratorRoute),
}