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
//! Transport abstraction.
//!
//! Defines the I/O trait that all transports must implement.
//!
//! ## Available Transports
//!
//! | Transport | Protocol | Feature Flag | Status |
//! |-----------|----------|-------------|--------|
//! | [`StdioTransport`] | Child process stdio | always | ✅ |
//! | [`TcpTransport`] | TCP socket | always | ✅ |
//! | [`WsTransport`] | WebSocket | `transport-websocket` | ✅ |
//! | [`MockTransport`] | In-memory FIFO | always (testing) | ✅ |
//!
//! ## Architecture
//!
//! [MermaidChart:./docs/mmd/transport-architecture.mmd]
pub
/// This module is only available with the `transport-websocket` feature.
use ExitStatus;
use crateLspzError;
/// Abstract I/O channel for LSP communication.
///
/// All LSP message I/O (regardless of transport protocol) is defined by this trait.
/// Implementations handle Content-Length framing internally and expose raw framed bytes.