Skip to main content

Mountain/IPC/WindServiceHandlers/
Terminal.rs

1
2//! # Terminal handlers
3//!
4//! Two related responsibilities:
5//!
6//! - `Terminal*` - operate on PTYs that are already registered via the
7//!   `TerminalProvider` trait. Every method takes a provider-assigned
8//!   `terminal_id` (`u64`).
9//! - `LocalPTY*` - read-only platform queries that don't touch any registered
10//!   PTY: discover available shells, default shell, and the current process
11//!   environment.
12//!
13//! Layout (one export per file, file name = identity):
14//! - `TerminalCreate::TerminalCreate`, `TerminalSendText::TerminalSendText`,
15//!   `TerminalDispose::TerminalDispose`, `TerminalShow::TerminalShow`,
16//!   `TerminalHide::TerminalHide`.
17//! - `LocalPTYGetProfiles::LocalPTYGetProfiles`,
18//!   `LocalPTYGetDefaultShell::LocalPTYGetDefaultShell`,
19//!   `LocalPTYGetEnvironment::LocalPTYGetEnvironment`.
20//! - `SerializeTerminalState::SerializeTerminalState` - snapshot all active
21//!   terminals to `ISerializedTerminalState[]` for window-reload restoration.
22//! - `ReviveTerminalProcesses::ReviveTerminalProcesses` - respawn terminals
23//!   from a previously serialised snapshot.
24//! - `AttachToProcess::AttachToProcess` - reconnect the workbench to an
25//!   existing Mountain PTY after a window reload.
26//! - `DetachFromProcess::DetachFromProcess` - detach the workbench; PTY stays
27//!   alive with output buffering for the next attach.
28
29pub mod AttachToProcess;
30
31pub mod LocalPTYCreateProcess;
32
33pub mod LocalPTYFreePortKillProcess;
34
35pub mod LocalPTYResize;
36
37pub mod DetachFromProcess;
38
39pub mod LocalPTYGetDefaultShell;
40
41pub mod LocalPTYGetEnvironment;
42
43pub mod LocalPTYGetProfiles;
44
45pub mod ReviveTerminalProcesses;
46
47pub mod SerializeTerminalState;
48
49pub mod TerminalCreate;
50
51pub mod TerminalDispose;
52
53pub mod TerminalHide;
54
55pub mod TerminalSendText;
56
57pub mod TerminalShow;