pub enum ExecEvent {
Output {
stream: StreamKind,
offset: u64,
data: Vec<u8>,
},
Gap {
from: u64,
to: u64,
},
Exit(ExitEvent),
}Expand description
One decoded stream event.
The payloads are the protocol crate’s, so a field renamed on the daemon side
breaks this build. The one thing added on top is the decoded bytes of an output
event: base64 is how arbitrary bytes cross a JSON string, and a caller wants the
bytes.
Not Clone, because protocol::exec::ExitEvent is not — and adding the derive
there would be an edit to a crate this lane does not own. No consumer needs it: a
stream item is moved to its handler once.
Variants§
Output
Output bytes, with the offset they start at.
Gap
A byte range that is gone for good.
Surfaced as a typed event rather than logged, because the alternative is reading
a truncated log as a complete one. from is inclusive and to exclusive, so
to is where a cursor resumes.
Exit(ExitEvent)
The terminal event. Its absence is what distinguishes a cut connection from a finished command — the byte sequences are otherwise identical.