pub struct TerminalSnapshotConfig {
pub max_lines: usize,
pub max_cells_per_line: usize,
pub max_commands: usize,
pub max_diagnostics: usize,
pub max_warnings: usize,
pub max_events: usize,
pub max_event_bytes: usize,
pub max_latest_output_lines: usize,
pub redaction: TerminalRedactionPolicy,
}Expand description
Collection limits and redaction policy used to build terminal snapshots.
Every limit accepts 0, which produces an empty corresponding collection.
Text fields are independently limited by TerminalRedactionPolicy::max_text_bytes.
The public fields and derived deserialization allow any usize values; no
additional validation or clamping is performed.
§Examples
use ailloli_ui_terminal_core::TerminalSnapshotConfig;
let config = TerminalSnapshotConfig {
max_lines: 25,
max_events: 0,
..TerminalSnapshotConfig::default()
};
assert_eq!(config.max_lines, 25);
assert_eq!(config.max_events, 0);Fields§
§max_lines: usizeMaximum number of newest visual lines retained in TerminalSnapshot::lines.
max_cells_per_line: usizeMaximum number of non-wide-trailing cells retained for each snapshot line.
max_commands: usizeMaximum number of newest completed and current commands retained.
max_diagnostics: usizeMaximum number of oldest diagnostics retained from the state.
max_warnings: usizeMaximum number of oldest warnings retained from the state.
max_events: usizeMaximum number of newest records copied by TerminalEventLog::snapshot.
max_event_bytes: usizeMaximum number of raw bytes considered for an input or output event.
max_latest_output_lines: usizeMaximum number of newest visual lines represented as plain text.
redaction: TerminalRedactionPolicyText truncation and secret-replacement policy.
Implementations§
Source§impl TerminalSnapshotConfig
impl TerminalSnapshotConfig
Sourcepub fn unredacted_for_tests() -> Self
pub fn unredacted_for_tests() -> Self
Returns the default limits with all redaction disabled.
Text is still limited to 8,192 source bytes and byte events are still
limited by Self::max_event_bytes. This helper is intended only for
test fixtures containing no secrets; using it for production snapshots
can expose command lines, terminal output, and working-directory URIs.
§Examples
use ailloli_ui_terminal_core::TerminalSnapshotConfig;
let config = TerminalSnapshotConfig::unredacted_for_tests();
assert!(!config.redaction.enabled);
assert_eq!(config.max_lines, 200);Trait Implementations§
Source§impl Clone for TerminalSnapshotConfig
impl Clone for TerminalSnapshotConfig
Source§fn clone(&self) -> TerminalSnapshotConfig
fn clone(&self) -> TerminalSnapshotConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TerminalSnapshotConfig
impl Debug for TerminalSnapshotConfig
Source§impl Default for TerminalSnapshotConfig
impl Default for TerminalSnapshotConfig
Source§fn default() -> Self
fn default() -> Self
Returns bounded production-oriented defaults with redaction enabled.
§Examples
use ailloli_ui_terminal_core::TerminalSnapshotConfig;
let config = TerminalSnapshotConfig::default();
assert_eq!(config.max_lines, 200);
assert_eq!(config.max_cells_per_line, 160);
assert_eq!(config.max_commands, 64);
assert_eq!(config.max_diagnostics, 128);
assert_eq!(config.max_warnings, 128);
assert_eq!(config.max_events, 2_000);
assert_eq!(config.max_event_bytes, 4_096);
assert_eq!(config.max_latest_output_lines, 12);
assert!(config.redaction.enabled);