1use super::TimeZone;
2
3use super::{Target, state::RuntimeState};
4
5pub struct Context<'a> {
6 target: &'a mut dyn Target,
7 state: &'a mut RuntimeState,
8 timezone: &'a TimeZone,
9}
10
11impl<'a> Context<'a> {
12 pub fn new(
14 target: &'a mut dyn Target,
15 state: &'a mut RuntimeState,
16 timezone: &'a TimeZone,
17 ) -> Self {
18 Self {
19 target,
20 state,
21 timezone,
22 }
23 }
24
25 #[must_use]
27 pub fn target(&self) -> &dyn Target {
28 self.target
29 }
30
31 pub fn target_mut(&mut self) -> &mut dyn Target {
33 self.target
34 }
35
36 #[must_use]
38 pub fn state(&self) -> &RuntimeState {
39 self.state
40 }
41
42 pub fn state_mut(&mut self) -> &mut RuntimeState {
44 self.state
45 }
46
47 #[must_use]
49 pub fn timezone(&self) -> &TimeZone {
50 self.timezone
51 }
52}