1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
5#[serde(rename_all = "snake_case")]
6pub enum ResetProfile {
7 Conversation,
8 Session,
9 FullRuntime,
10 EvalAttempt,
11 Persistence,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct ResetOptions {
17 #[serde(default = "default_profile")]
19 pub profile: ResetProfile,
20 #[serde(default)]
22 pub preserve_host_context: bool,
23 #[serde(default)]
25 pub preserve_actor_id: bool,
26 #[serde(default = "default_true")]
28 pub preserve_storage: bool,
29 #[serde(default = "default_true")]
31 pub reset_spawner_registry: bool,
32 #[serde(default = "default_true")]
34 pub reset_observability: bool,
35 #[serde(default)]
37 pub delete_persistence: bool,
38}
39
40impl Default for ResetOptions {
41 fn default() -> Self {
42 Self {
43 profile: ResetProfile::FullRuntime,
44 preserve_host_context: false,
45 preserve_actor_id: false,
46 preserve_storage: true,
47 reset_spawner_registry: true,
48 reset_observability: true,
49 delete_persistence: false,
50 }
51 }
52}
53
54fn default_profile() -> ResetProfile {
55 ResetProfile::FullRuntime
56}
57
58fn default_true() -> bool {
59 true
60}