1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum SchedulerMode {
6 Reflex,
8 Flow,
10 Recovery,
12}
13
14#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
16#[repr(transparent)]
17pub struct Priority(u8);
18
19impl Priority {
20 pub const MAX: Self = Self(255);
22 pub const MIN: Self = Self(0);
24 pub const DEFAULT: Self = Self(128);
26
27 #[must_use]
29 pub const fn new(val: u8) -> Self {
30 Self(val)
31 }
32
33 #[must_use]
35 pub const fn as_u8(self) -> u8 {
36 self.0
37 }
38}
39
40#[derive(Debug, Clone, Copy)]
42pub struct EpochConfig {
43 pub interval_ns: u64,
45 pub max_switches: u16,
47}
48
49impl Default for EpochConfig {
50 fn default() -> Self {
51 Self {
52 interval_ns: 10_000_000, max_switches: 64,
54 }
55 }
56}
57
58#[derive(Debug, Clone, Copy)]
60pub struct EpochSummary {
61 pub epoch: u32,
63 pub switch_count: u16,
65 pub runnable_count: u16,
67}