1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! Shared snapshot types for session and arrangement persistence.
//!
//! Both the automatic session restore (`crate::session`) and the named arrangements
//! feature (`crate::arrangements`) capture the same per-tab state when saving a
//! window layout. This module defines the common base type that both hierarchies
//! share so that the field definitions are not duplicated.
//!
//! # Type relationships
//!
//! ```text
//! par-term-config::snapshot_types::TabSnapshot (shared base)
//! ↑ ↑
//! par-term-settings-ui::arrangements src/session
//! TabSnapshot (re-export) SessionTab { #[serde(flatten)] TabSnapshot, pane_layout }
//! ```
//!
//! # Serialization compatibility
//!
//! All types derive `Serialize`/`Deserialize`. The `#[serde(flatten)]` usage in
//! `SessionTab` means existing YAML files do not need to change — all fields are
//! written at the same level as before.
use ;
/// Snapshot of a single tab's state.
///
/// This is the common base shared between the session-restore module
/// (`SessionTab`) and the named-arrangements module (`TabSnapshot`).
/// Both hierarchies capture exactly these fields; session additionally
/// stores `pane_layout` on top of them.