diff options
Diffstat (limited to 'src/persist.rs')
| -rw-r--r-- | src/persist.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/persist.rs b/src/persist.rs index 480c1248..06c5af61 100644 --- a/src/persist.rs +++ b/src/persist.rs @@ -34,6 +34,8 @@ pub struct SessionSnapshot { pub agent_panel_scope: crate::app::state::AgentPanelScope, #[serde(default)] pub sidebar_width: Option<u16>, + #[serde(default)] + pub sidebar_section_split: Option<f32>, } #[derive(Serialize, Deserialize)] @@ -133,6 +135,8 @@ struct RawSessionSnapshot { agent_panel_scope: crate::app::state::AgentPanelScope, #[serde(default)] sidebar_width: Option<u16>, + #[serde(default)] + sidebar_section_split: Option<f32>, } fn migrate_snapshot(raw: RawSessionSnapshot) -> Result<SessionSnapshot, String> { @@ -147,6 +151,7 @@ fn migrate_snapshot(raw: RawSessionSnapshot) -> Result<SessionSnapshot, String> selected: raw.selected, agent_panel_scope: raw.agent_panel_scope, sidebar_width: raw.sidebar_width, + sidebar_section_split: raw.sidebar_section_split, }) } @@ -205,6 +210,7 @@ pub fn capture( selected: usize, agent_panel_scope: crate::app::state::AgentPanelScope, sidebar_width: u16, + sidebar_section_split: f32, ) -> SessionSnapshot { SessionSnapshot { version: SNAPSHOT_VERSION, @@ -213,6 +219,7 @@ pub fn capture( selected, agent_panel_scope, sidebar_width: Some(sidebar_width), + sidebar_section_split: Some(sidebar_section_split), } } @@ -580,12 +587,14 @@ mod tests { selected: 0, agent_panel_scope: crate::app::state::AgentPanelScope::CurrentWorkspace, sidebar_width: Some(26), + sidebar_section_split: Some(0.5), }; let json = serde_json::to_string(&snap).unwrap(); let restored = parse_snapshot(&json).unwrap(); assert!(restored.workspaces.is_empty()); assert_eq!(restored.active, None); assert_eq!(restored.sidebar_width, Some(26)); + assert_eq!(restored.sidebar_section_split, Some(0.5)); } #[test] @@ -651,6 +660,7 @@ mod tests { selected: 0, agent_panel_scope: crate::app::state::AgentPanelScope::CurrentWorkspace, sidebar_width: Some(26), + sidebar_section_split: Some(0.5), version: SNAPSHOT_VERSION, }; @@ -674,6 +684,7 @@ mod tests { crate::app::state::AgentPanelScope::CurrentWorkspace ); assert_eq!(restored.sidebar_width, Some(26)); + assert_eq!(restored.sidebar_section_split, Some(0.5)); } #[test] @@ -689,6 +700,7 @@ mod tests { crate::app::state::AgentPanelScope::CurrentWorkspace ); assert_eq!(snap.sidebar_width, None); + assert_eq!(snap.sidebar_section_split, None); assert_eq!(snap.workspaces[0].tabs.len(), 2); assert_eq!( snap.workspaces[1].identity_cwd, @@ -706,6 +718,7 @@ mod tests { snap.agent_panel_scope, crate::app::state::AgentPanelScope::CurrentWorkspace ); + assert_eq!(snap.sidebar_section_split, Some(0.4)); assert_eq!(snap.workspaces[0].active_tab, 1); assert_eq!(snap.workspaces[1].tabs[0].panes.len(), 2); } @@ -727,6 +740,7 @@ mod tests { crate::app::state::AgentPanelScope::CurrentWorkspace ); assert_eq!(restored.sidebar_width, None); + assert_eq!(restored.sidebar_section_split, None); } #[test] |
