dope_runtime/executor/raw/
progress.rs1use dope_core::driver::schedule::clock;
2use o3::base::cell::region;
3
4#[derive(Clone, Copy)]
6#[must_use]
7pub struct Progress<'region, 'turn, 'd> {
8 region: &'region (
9 region::Token<region::Identity<'d>>,
10 region::Token<region::Identity<'d, 1>>,
11 ),
12 clock: clock::Clock<'turn, 'd>,
13}
14
15impl<'region, 'turn, 'd> Progress<'region, 'turn, 'd> {
16 pub(crate) const fn new(
17 region: &'region (
18 region::Token<region::Identity<'d>>,
19 region::Token<region::Identity<'d, 1>>,
20 ),
21 clock: clock::Clock<'turn, 'd>,
22 ) -> Self {
23 Self { region, clock }
24 }
25
26 pub const fn regions(
27 self,
28 ) -> &'region (
29 region::Token<region::Identity<'d>>,
30 region::Token<region::Identity<'d, 1>>,
31 ) {
32 self.region
33 }
34
35 pub const fn clock(self) -> clock::Clock<'turn, 'd> {
36 self.clock
37 }
38}
39
40const _: () = {
41 assert!(std::mem::size_of::<Progress<'_, '_, '_>>() == 2 * std::mem::size_of::<usize>());
42 assert!(std::mem::align_of::<Progress<'_, '_, '_>>() == std::mem::align_of::<usize>());
43};