pub struct Workspace { /* private fields */ }Expand description
In-memory workspace state: the ordered processes and the current selection. Pure domain orchestration, free of any rendering or I/O concern.
Implementations§
Source§impl Workspace
impl Workspace
Sourcepub fn selected_process(&self) -> Option<&Process>
pub fn selected_process(&self) -> Option<&Process>
The currently selected process, if any.
Sourcepub fn add_process(&mut self, process: Process)
pub fn add_process(&mut self, process: Process)
Appends a process to the end of the workspace, leaving the selection and every existing process untouched.
Sourcepub fn remove(&mut self, pane: PaneId)
pub fn remove(&mut self, pane: PaneId)
Removes the process owning pane, clamping the selection to stay valid.
Sourcepub fn select_next(&mut self)
pub fn select_next(&mut self)
Moves the selection to the next process, wrapping around.
Sourcepub fn select_at(&mut self, index: usize)
pub fn select_at(&mut self, index: usize)
Selects the process at index, clamped to the valid range. A no-op when
the workspace is empty.
Sourcepub fn select_previous(&mut self)
pub fn select_previous(&mut self)
Moves the selection to the previous process, wrapping around.
Sourcepub fn position_of(&self, pane: PaneId) -> Option<usize>
pub fn position_of(&self, pane: PaneId) -> Option<usize>
Index of the process owning pane, if present.
Sourcepub fn set_state(&mut self, pane: PaneId, state: ProcessState)
pub fn set_state(&mut self, pane: PaneId, state: ProcessState)
Updates the lifecycle state of the process owning pane.
Sourcepub fn set_autostart(&mut self, pane: PaneId, autostart: bool)
pub fn set_autostart(&mut self, pane: PaneId, autostart: bool)
Sets the autostart flag of the process owning pane.
Sourcepub fn set_activity(&mut self, pane: PaneId, activity: ActivityState)
pub fn set_activity(&mut self, pane: PaneId, activity: ActivityState)
Updates the inferred activity of the process owning pane.
Sourcepub fn should_restart(&self, pane: PaneId, outcome: ExitOutcome) -> bool
pub fn should_restart(&self, pane: PaneId, outcome: ExitOutcome) -> bool
Whether the process owning pane should be restarted after outcome.
Auto Trait Implementations§
impl Freeze for Workspace
impl RefUnwindSafe for Workspace
impl Send for Workspace
impl Sync for Workspace
impl Unpin for Workspace
impl UnsafeUnpin for Workspace
impl UnwindSafe for Workspace
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> 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>
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>
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)
&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)
&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>
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