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.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ExecEvent
impl RefUnwindSafe for ExecEvent
impl Send for ExecEvent
impl Sync for ExecEvent
impl Unpin for ExecEvent
impl UnsafeUnpin for ExecEvent
impl UnwindSafe for ExecEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more