pub enum ShellEnd {
Exited {
reason: String,
},
LocalClosed,
Disconnected {
code: u16,
reason: String,
},
}Expand description
How a shell session ended. A value rather than an error, because every variant is a session that did its transport job — see the module docs on the missing exit-status channel before adding anything status-shaped here.
Variants§
Exited
The platform closed with code 1000: the shell process exited. Says nothing about the last command’s status — there is no channel that could.
LocalClosed
The local input reached EOF, so this side hung up on a shell that was still
running. Distinct from ShellEnd::Exited because “the user closed their end”
and “the shell ended” are different facts to report.
Disconnected
The session ended some other way: a dropped connection, a proxy-side refusal, or a close code this system does not originate. 1006 with no reason is what every endpoint-proxy failure collapses to (the tunnel’s measurement holds here too).
Trait Implementations§
impl Eq for ShellEnd
impl StructuralPartialEq for ShellEnd
Auto Trait Implementations§
impl Freeze for ShellEnd
impl RefUnwindSafe for ShellEnd
impl Send for ShellEnd
impl Sync for ShellEnd
impl Unpin for ShellEnd
impl UnsafeUnpin for ShellEnd
impl UnwindSafe for ShellEnd
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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