pub struct Tool {
pub name: String,
pub detect: Vec<String>,
pub open: Vec<Vec<String>>,
pub pane_pointer: Option<String>,
pub run: Vec<String>,
pub respawn: Vec<String>,
pub prompt: Vec<Vec<String>>,
pub type_line: Vec<Vec<String>>,
pub alive: Vec<String>,
pub ready: Vec<String>,
pub ready_s: Option<u64>,
}Expand description
One tool, as harnesses.toml declares it.
Fields§
§name: String§detect: Vec<String>Exits 0 when the tool can open a pane on this machine now.
open: Vec<Vec<String>>Ways to open the persona’s pane, tried in order until one exits 0.
The pane runs {script}, which changes to {home} first. With
run set it starts as a shell, and run types the script into it.
pane_pointer: Option<String>Where open’s JSON output names the new pane, as a JSON pointer.
run: Vec<String>Types the pane script into the pane open made, for a tool whose
panes start as shells.
respawn: Vec<String>Starts the pane script again in a pane whose runner exited.
prompt: Vec<Vec<String>>Hands the runner one line, through the tool’s agent interface where it has one and as typed keys where it does not; each argv runs in order.
type_line: Vec<Vec<String>>Types the line raw when prompt is refused or absent, as for a
runner the tool does not recognise as an agent.
alive: Vec<String>Exits 0 while the pane is there.
ready: Vec<String>Exits 0 once a fresh runner takes input; retried until ready_s.
ready_s: Option<u64>Seconds to wait for ready, or to sleep when there is none.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Tool
impl<'de> Deserialize<'de> for Tool
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>,
impl Eq for Tool
impl StructuralPartialEq for Tool
Auto Trait Implementations§
impl Freeze for Tool
impl RefUnwindSafe for Tool
impl Send for Tool
impl Sync for Tool
impl Unpin for Tool
impl UnsafeUnpin for Tool
impl UnwindSafe for Tool
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
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