pub struct ShellSession { /* private fields */ }Expand description
Shell session managing PTY and shell process.
Handles the lifecycle of an interactive shell session including:
- PTY creation and configuration
- Shell process spawning
- Bidirectional I/O forwarding via ChannelStream
- Window resize events
- Graceful shutdown
Implementations§
Source§impl ShellSession
impl ShellSession
Sourcepub fn take_child(&mut self) -> Option<Child>
pub fn take_child(&mut self) -> Option<Child>
Take the child process for use in the I/O loop.
This should be called after spawning the shell.
Sourcepub fn pty(&self) -> &Arc<RwLock<PtyMaster>> ⓘ
pub fn pty(&self) -> &Arc<RwLock<PtyMaster>> ⓘ
Get a reference to the PTY mutex for resize operations.
Sourcepub fn channel_id(&self) -> ChannelId
pub fn channel_id(&self) -> ChannelId
Get the channel ID for this shell session.
Sourcepub async fn spawn_shell_process(&mut self, user_info: &UserInfo) -> Result<()>
pub async fn spawn_shell_process(&mut self, user_info: &UserInfo) -> Result<()>
Spawn the shell process.
This should be called before taking the child process and data receiver.
Trait Implementations§
Source§impl Debug for ShellSession
impl Debug for ShellSession
Source§impl Drop for ShellSession
impl Drop for ShellSession
Auto Trait Implementations§
impl !RefUnwindSafe for ShellSession
impl !UnwindSafe for ShellSession
impl Freeze for ShellSession
impl Send for ShellSession
impl Sync for ShellSession
impl Unpin for ShellSession
impl UnsafeUnpin for ShellSession
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
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> ⓘ
Converts
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> ⓘ
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request