pub struct CommandExecution {
pub id: CommandOutputId,
pub status: CommandStatus,
pub stdout: Vec<String>,
pub stderr: Vec<String>,
pub exit_code: Option<i32>,
pub auto_scroll: bool,
}Expand description
State of a command execution for display in a tab.
Fields§
§id: CommandOutputIdThe command output identifier.
status: CommandStatusCurrent status of the command.
stdout: Vec<String>Lines of stdout output.
stderr: Vec<String>Lines of stderr output.
exit_code: Option<i32>Exit code if the command has finished.
auto_scroll: boolWhether auto-scroll is enabled (scroll to bottom on new output).
Implementations§
Source§impl CommandExecution
impl CommandExecution
Sourcepub fn new(id: CommandOutputId) -> Self
pub fn new(id: CommandOutputId) -> Self
Create a new command execution in the running state.
Sourcepub fn add_stdout(&mut self, line: String)
pub fn add_stdout(&mut self, line: String)
Add a line to stdout.
Sourcepub fn add_stderr(&mut self, line: String)
pub fn add_stderr(&mut self, line: String)
Add a line to stderr.
Sourcepub fn complete(&mut self, exit_code: i32)
pub fn complete(&mut self, exit_code: i32)
Mark the command as completed with the given exit code.
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Returns true if the command is still running.
Sourcepub fn is_finished(&self) -> bool
pub fn is_finished(&self) -> bool
Returns true if the command has completed (successfully or not).
Sourcepub fn combined_output(&self) -> Vec<&str>
pub fn combined_output(&self) -> Vec<&str>
Returns the combined output (stdout + stderr interleaved would require timestamps, so we return stdout followed by stderr).
Trait Implementations§
Source§impl Clone for CommandExecution
impl Clone for CommandExecution
Source§fn clone(&self) -> CommandExecution
fn clone(&self) -> CommandExecution
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CommandExecution
impl RefUnwindSafe for CommandExecution
impl Send for CommandExecution
impl Sync for CommandExecution
impl Unpin for CommandExecution
impl UnwindSafe for CommandExecution
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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>
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 more