pub struct ExecuteOptions {
pub vars: HashMap<String, Value>,
pub timeout: Option<Duration>,
pub cancel_token: Option<CancellationToken>,
pub cwd: Option<PathBuf>,
}Expand description
Per-call options for Kernel::execute_with_options.
Construct with ExecuteOptions::new() and the chainable with_* builders,
or via Default.
§Cancellation vs. timeout — embedder note
If a cancel_token is supplied, it is raced against the kernel’s
internal token. The kernel does NOT cancel the embedder’s token on its
own timeouts — it cancels its internal token and returns exit code 124.
So your_token.is_cancelled() after the call returns reflects only
whether you (or someone sharing your token) cancelled, not whether the
kernel timed out. Distinguish via the returned ExecResult.code:
124 = kernel timeout, 130 = cancellation (Ctrl-C / Kernel::cancel).
Fields§
§vars: HashMap<String, Value>Variables exported into this call’s environment (per-call overlay).
timeout: Option<Duration>Per-call timeout. Overrides KernelConfig::request_timeout.
None means no timeout (or whatever the kernel-config default is).
Some(Duration::ZERO) returns exit 124 immediately without spawning
anything — useful for tests and dry-run paths.
Any other Some(d) lets the kernel run for at most d before cancelling
(which kills external children with the configured grace) and returning 124.
cancel_token: Option<CancellationToken>Optional externally-owned cancellation token, raced against the kernel’s
internal token. Either firing cancels the request and kills any running
external children. The kernel does not store this token in its own state —
it’s a per-call read-only input, so embedders are free to drop or reuse
the original token after the call returns. CancellationToken is internally
Arc-shared, so clone() it into the builder if you want to keep your
original handle.
cwd: Option<PathBuf>Per-call working directory override.
When Some(path), the kernel runs this call as if cd path happened
first, then restores the prior cwd on return. Useful for embedders that
run scripts in workspace contexts (notebook cells, per-tool dirs)
without polluting the long-lived kernel’s cwd.
Implementations§
Source§impl ExecuteOptions
impl ExecuteOptions
pub fn new() -> ExecuteOptions
Sourcepub fn with_vars(self, vars: HashMap<String, Value>) -> ExecuteOptions
pub fn with_vars(self, vars: HashMap<String, Value>) -> ExecuteOptions
Replace the entire vars overlay with the given map.
Sourcepub fn with_var(self, name: impl Into<String>, value: Value) -> ExecuteOptions
pub fn with_var(self, name: impl Into<String>, value: Value) -> ExecuteOptions
Add a single variable to the overlay (extending; last write wins).
pub fn with_timeout(self, timeout: Duration) -> ExecuteOptions
pub fn with_cancel_token(self, token: CancellationToken) -> ExecuteOptions
Sourcepub fn with_cwd(self, cwd: PathBuf) -> ExecuteOptions
pub fn with_cwd(self, cwd: PathBuf) -> ExecuteOptions
Run this call as if cd path had happened first; the prior cwd is
restored on return.
Trait Implementations§
Source§impl Clone for ExecuteOptions
impl Clone for ExecuteOptions
Source§fn clone(&self) -> ExecuteOptions
fn clone(&self) -> ExecuteOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more