1use crate::CliOverridesPatch;
2
3#[derive(Clone, Debug, Eq, PartialEq)]
5pub struct ResumeSessionRequest {
6 pub session_id: Option<String>,
7 pub prompt: Option<String>,
8 pub all: bool,
9 pub last: bool,
10 pub include_non_interactive: bool,
11 pub overrides: CliOverridesPatch,
13}
14
15impl ResumeSessionRequest {
16 pub fn new() -> Self {
17 Self {
18 session_id: None,
19 prompt: None,
20 all: false,
21 last: false,
22 include_non_interactive: false,
23 overrides: CliOverridesPatch::default(),
24 }
25 }
26
27 pub fn session_id(mut self, session_id: impl Into<String>) -> Self {
28 let session_id = session_id.into();
29 self.session_id = (!session_id.trim().is_empty()).then_some(session_id);
30 self
31 }
32
33 pub fn prompt(mut self, prompt: impl Into<String>) -> Self {
34 let prompt = prompt.into();
35 self.prompt = (!prompt.trim().is_empty()).then_some(prompt);
36 self
37 }
38
39 pub fn all(mut self, enable: bool) -> Self {
40 self.all = enable;
41 self
42 }
43
44 pub fn last(mut self, enable: bool) -> Self {
45 self.last = enable;
46 self
47 }
48
49 pub fn include_non_interactive(mut self, enable: bool) -> Self {
50 self.include_non_interactive = enable;
51 self
52 }
53
54 pub fn with_overrides(mut self, overrides: CliOverridesPatch) -> Self {
55 self.overrides = overrides;
56 self
57 }
58}
59
60impl Default for ResumeSessionRequest {
61 fn default() -> Self {
62 Self::new()
63 }
64}
65
66#[derive(Clone, Debug, Eq, PartialEq)]
68pub struct ForkSessionRequest {
69 pub session_id: Option<String>,
70 pub prompt: Option<String>,
71 pub all: bool,
72 pub last: bool,
73 pub overrides: CliOverridesPatch,
75}
76
77impl ForkSessionRequest {
78 pub fn new() -> Self {
79 Self {
80 session_id: None,
81 prompt: None,
82 all: false,
83 last: false,
84 overrides: CliOverridesPatch::default(),
85 }
86 }
87
88 pub fn session_id(mut self, session_id: impl Into<String>) -> Self {
89 let session_id = session_id.into();
90 self.session_id = (!session_id.trim().is_empty()).then_some(session_id);
91 self
92 }
93
94 pub fn prompt(mut self, prompt: impl Into<String>) -> Self {
95 let prompt = prompt.into();
96 self.prompt = (!prompt.trim().is_empty()).then_some(prompt);
97 self
98 }
99
100 pub fn all(mut self, enable: bool) -> Self {
101 self.all = enable;
102 self
103 }
104
105 pub fn last(mut self, enable: bool) -> Self {
106 self.last = enable;
107 self
108 }
109
110 pub fn with_overrides(mut self, overrides: CliOverridesPatch) -> Self {
111 self.overrides = overrides;
112 self
113 }
114}
115
116impl Default for ForkSessionRequest {
117 fn default() -> Self {
118 Self::new()
119 }
120}