pub struct TerminalStateDTO {
pub Identifier: u64,
pub Name: String,
pub OSProcessIdentifier: Option<u32>,
pub ShellPath: String,
pub ShellArguments: Vec<String>,
pub CurrentWorkingDirectory: Option<PathBuf>,
pub EnvironmentVariables: Option<HashMap<String, Option<String>>>,
pub IsPTY: bool,
pub PTYInputTransmitter: Option<Sender<String>>,
pub ReaderTaskHandle: Option<Arc<Mutex<Option<JoinHandle<()>>>>>,
pub ProcessWaitHandle: Option<Arc<Mutex<Option<JoinHandle<()>>>>>,
}Expand description
Holds the complete state and runtime resources for a single pseudo-terminal (PTY) instance. This includes configuration, process identifiers, and handles for I/O tasks.
Fields§
§Identifier: u64Unique terminal identifier
Name: StringTerminal display name
OSProcessIdentifier: Option<u32>OS process identifier (if running)
ShellPath: StringShell executable path
ShellArguments: Vec<String>Shell launch arguments
CurrentWorkingDirectory: Option<PathBuf>Current working directory
EnvironmentVariables: Option<HashMap<String, Option<String>>>Environment variables map
IsPTY: boolWhether this is a PTY terminal
PTYInputTransmitter: Option<Sender<String>>Channel for sending input to PTY
ReaderTaskHandle: Option<Arc<Mutex<Option<JoinHandle<()>>>>>Handle for output reader task
ProcessWaitHandle: Option<Arc<Mutex<Option<JoinHandle<()>>>>>Handle for process wait task
Implementations§
Source§impl TerminalStateDTO
impl TerminalStateDTO
Sourcepub fn Create(
Identifier: u64,
Name: String,
OptionsValue: &Value,
DefaultShellPath: String,
) -> Result<Self, String>
pub fn Create( Identifier: u64, Name: String, OptionsValue: &Value, DefaultShellPath: String, ) -> Result<Self, String>
Creates a new TerminalStateDTO by parsing terminal options from a
serde_json::Value with validation.
§Arguments
Identifier- Unique terminal identifierName- Terminal display nameOptionsValue- Terminal options JSONDefaultShellPath- Default shell if not specified
§Returns
Result containing the DTO or validation error
Sourcepub fn HasInputChannel(&self) -> bool
pub fn HasInputChannel(&self) -> bool
Checks if the terminal has an active PTY input channel.
Sourcepub fn GetWorkingDirectory(&self) -> String
pub fn GetWorkingDirectory(&self) -> String
Returns the working directory as a string, or default if not set.
Sourcepub fn ClearHandles(&mut self)
pub fn ClearHandles(&mut self)
Clears the runtime handles (useful when terminating terminal).
Trait Implementations§
Source§impl Clone for TerminalStateDTO
impl Clone for TerminalStateDTO
Source§fn clone(&self) -> TerminalStateDTO
fn clone(&self) -> TerminalStateDTO
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TerminalStateDTO
impl Debug for TerminalStateDTO
Source§impl<'de> Deserialize<'de> for TerminalStateDTO
impl<'de> Deserialize<'de> for TerminalStateDTO
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for TerminalStateDTO
impl !RefUnwindSafe for TerminalStateDTO
impl Send for TerminalStateDTO
impl Sync for TerminalStateDTO
impl Unpin for TerminalStateDTO
impl !UnwindSafe for TerminalStateDTO
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,
§impl<'de, D, R> CommandArg<'de, R> for Dwhere
D: Deserialize<'de>,
R: Runtime,
impl<'de, D, R> CommandArg<'de, R> for Dwhere
D: Deserialize<'de>,
R: Runtime,
§fn from_command(command: CommandItem<'de, R>) -> Result<D, InvokeError>
fn from_command(command: CommandItem<'de, R>) -> Result<D, InvokeError>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].