pub enum TabState {
Waiting,
Starting,
Running,
Ended {
code: Option<u32>,
},
Stopped,
Failed(LaunchFailure),
NoImage,
Building(TaskId),
Missing,
Unreadable(String),
}Expand description
Where a tab stands.
Nothing here is a guess: a tab is Running only once a session is really attached to a
container, and every way of failing carries what to do next.
Variants§
Waiting
Not started yet. A tab brought back from the last session waits like a background tab of a browser: it starts its container the first time it is shown, so bringing back a dozen tabs does not start a dozen containers at once. A blank tab waits for its choice.
Starting
The container is being created or started; nothing is attached yet.
Running
A session is attached to the running container; for a Markdown tab, which has neither, the document is read and shown.
Ended
The program inside the container ended, and the container is still up.
Stopped
The container is not running any more, so the tab lost its ground rather than its program. This is the case the design asks to be named and offered a restart.
Failed(LaunchFailure)
The engine refused, and said why.
NoImage
The engine does not have the image of the tab’s profile, so nothing was made; the tab offers to build it.
Building(TaskId)
The profile’s image is being built by this task, for the tab to open once it is there.
Missing
The file the tab opens is not in the workspace any more.
Unreadable(String)
The file the tab opens could not be read, for this reason.
Implementations§
Source§impl TabState
impl TabState
Sourcepub fn is_starting(&self) -> bool
pub fn is_starting(&self) -> bool
Whether the tab is waiting for its container.
Sourcepub fn can_restart(&self) -> bool
pub fn can_restart(&self) -> bool
Whether the tab can be started again. A tab that is starting or running has nothing to restart, so its restart is never offered.
Trait Implementations§
impl Eq for TabState
impl StructuralPartialEq for TabState
Auto Trait Implementations§
impl Freeze for TabState
impl RefUnwindSafe for TabState
impl Send for TabState
impl Sync for TabState
impl Unpin for TabState
impl UnsafeUnpin for TabState
impl UnwindSafe for TabState
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,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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