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 UnsafeUnpin for TerminalStateDTO
impl !UnwindSafe for TerminalStateDTO
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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].