pub enum Remedy {
Install {
command: Option<String>,
docs: &'static str,
relogin: bool,
},
Start {
command: Option<String>,
},
Grant {
command: String,
relogin: bool,
},
Relogin,
Unknown,
}Expand description
What the person has to do before the chosen engine works.
The words belong to the screen, which knows from the EngineProblem itself what to say;
what is here is only the one line the person may want to run, and never a command QCode is
not sure of.
Variants§
Install
The engine is not there and has to be installed.
Fields
Start
The engine is installed and something it needs has to be started.
Grant
The engine works and this account is not set up for it yet: it has to join the docker
group, or be given id ranges for podman. The line does it.
Fields
Relogin
The account is set up already and this login began before it was: logging out and back in is all that is left, and no command does that.
Unknown
The engine refused for a reason QCode cannot read; only its own words help.
Implementations§
Source§impl Remedy
impl Remedy
Sourcepub fn runnable(&self) -> Option<&str>
pub fn runnable(&self) -> Option<&str>
The line QCode can run for the person on a terminal in the page, when there is one.
Sourcepub fn for_problem(
problem: &EngineProblem,
kind: EngineKind,
host: &InstallHost,
) -> Self
pub fn for_problem( problem: &EngineProblem, kind: EngineKind, host: &InstallHost, ) -> Self
What to do about problem with kind on host.
Trait Implementations§
impl Eq for Remedy
impl StructuralPartialEq for Remedy
Auto Trait Implementations§
impl Freeze for Remedy
impl RefUnwindSafe for Remedy
impl Send for Remedy
impl Sync for Remedy
impl Unpin for Remedy
impl UnsafeUnpin for Remedy
impl UnwindSafe for Remedy
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