use super::{AcceleratorCounts, AsyncLanesPerProcess, ProcessCount, ServerCount, WorkerCount};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct RouteTopology {
worker_threads: WorkerCount,
processes: ProcessCount,
async_lanes_per_process: AsyncLanesPerProcess,
servers: ServerCount,
accelerators: AcceleratorCounts,
}
impl RouteTopology {
#[inline]
pub const fn new(
worker_threads: WorkerCount,
processes: ProcessCount,
async_lanes_per_process: AsyncLanesPerProcess,
servers: ServerCount,
) -> Self {
Self {
worker_threads,
processes,
async_lanes_per_process,
servers,
accelerators: AcceleratorCounts::new(0, 0, 0, 0),
}
}
#[inline]
pub const fn with_accelerators(mut self, accelerators: AcceleratorCounts) -> Self {
self.accelerators = accelerators;
self
}
#[inline]
pub const fn worker_threads(self) -> WorkerCount {
self.worker_threads
}
#[inline]
pub const fn processes(self) -> ProcessCount {
self.processes
}
#[inline]
pub const fn async_lanes_per_process(self) -> AsyncLanesPerProcess {
self.async_lanes_per_process
}
#[inline]
pub const fn servers(self) -> ServerCount {
self.servers
}
#[inline]
pub const fn accelerators(self) -> AcceleratorCounts {
self.accelerators
}
}