Skip to main content

par_term_config/
scrollback_mark.rs

1/// Public-facing metadata for a mark anchored to a scrollback line.
2///
3/// This is a shared type used by both the terminal module (which creates marks
4/// from shell integration events) and the renderer module (which displays
5/// marks in the scrollbar and separator lines).
6#[derive(Clone, Debug, PartialEq, Eq)]
7pub struct ScrollbackMark {
8    pub line: usize,
9    pub exit_code: Option<i32>,
10    pub start_time: Option<u64>,
11    pub duration_ms: Option<u64>,
12    pub command: Option<String>,
13    /// Custom color override (from trigger marks). When set, overrides exit_code-based coloring.
14    pub color: Option<(u8, u8, u8)>,
15    /// Trigger ID that created this mark (None for shell integration marks).
16    /// Used for deduplication: the same trigger matching the same physical line
17    /// across multiple scans produces marks at different absolute positions.
18    pub trigger_id: Option<u64>,
19}