mod route_policy {
pub trait Sealed {}
}
pub trait RoutePolicy: route_policy::Sealed + Copy + Default + Send + Sync + 'static {
const ENABLE_PROCESS_ROUTES: bool;
const ENABLE_SERVER_ROUTES: bool;
const ENABLE_ACCELERATOR_ROUTES: bool;
const PROCESS_PERIOD: usize;
const SERVER_PERIOD: usize;
const ACCELERATOR_PERIOD: usize;
}
#[derive(Debug, Clone, Copy, Default)]
pub struct ThreadRoutePolicy;
#[derive(Debug, Clone, Copy, Default)]
pub struct HybridRoutePolicy;
#[derive(Debug, Clone, Copy, Default)]
pub struct ServerRoutePolicy;
#[derive(Debug, Clone, Copy, Default)]
pub struct AcceleratorRoutePolicy;
impl route_policy::Sealed for ThreadRoutePolicy {}
impl route_policy::Sealed for HybridRoutePolicy {}
impl route_policy::Sealed for ServerRoutePolicy {}
impl route_policy::Sealed for AcceleratorRoutePolicy {}
impl RoutePolicy for ThreadRoutePolicy {
const ENABLE_PROCESS_ROUTES: bool = false;
const ENABLE_SERVER_ROUTES: bool = false;
const ENABLE_ACCELERATOR_ROUTES: bool = false;
const PROCESS_PERIOD: usize = 1;
const SERVER_PERIOD: usize = 1;
const ACCELERATOR_PERIOD: usize = 1;
}
impl RoutePolicy for HybridRoutePolicy {
const ENABLE_PROCESS_ROUTES: bool = true;
const ENABLE_SERVER_ROUTES: bool = true;
const ENABLE_ACCELERATOR_ROUTES: bool = false;
const PROCESS_PERIOD: usize = 5;
const SERVER_PERIOD: usize = 17;
const ACCELERATOR_PERIOD: usize = 1;
}
impl RoutePolicy for ServerRoutePolicy {
const ENABLE_PROCESS_ROUTES: bool = true;
const ENABLE_SERVER_ROUTES: bool = true;
const ENABLE_ACCELERATOR_ROUTES: bool = false;
const PROCESS_PERIOD: usize = 3;
const SERVER_PERIOD: usize = 11;
const ACCELERATOR_PERIOD: usize = 1;
}
impl RoutePolicy for AcceleratorRoutePolicy {
const ENABLE_PROCESS_ROUTES: bool = true;
const ENABLE_SERVER_ROUTES: bool = true;
const ENABLE_ACCELERATOR_ROUTES: bool = true;
const PROCESS_PERIOD: usize = 5;
const SERVER_PERIOD: usize = 17;
const ACCELERATOR_PERIOD: usize = 7;
}