#[non_exhaustive]pub enum TaskKind {
Subprocess(SubprocessSpec),
Wasm(WasmSpec),
Container(ContainerSpec),
Embedded,
}Expand description
Execution backend for a task.
| Variant | Backend | Routable |
|---|---|---|
Subprocess | OS process (command, args) | yes |
Container | OCI container image | yes |
Embedded | In-process TaskRef | no |
Wasm | WASI module (.wasm) | yes |
Routable variants go through RunnerRouter::pick().
§Also
TaskSpec— embedsTaskKindas its execution backend.solti_runner::RunnerRouter— picks a runner based on kind and selector.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Subprocess(SubprocessSpec)
Execute a subprocess on the host.
Wasm(WasmSpec)
Execute a WebAssembly module via a WASI-compatible runtime.
Container(ContainerSpec)
Run a task inside an OCI-compatible container.
Embedded
Built-in / code-defined task that does not require a runner.
Used only with SupervisorApi::submit_with_task().
Any attempt to submit this via submit() (which builds via runners) must be rejected.
Implementations§
Source§impl TaskKind
impl TaskKind
Sourcepub fn kind(&self) -> &'static str
pub fn kind(&self) -> &'static str
Returns a short symbolic identifier for the runtime kind.
This is primarily intended for logging, metrics and routing:
"subprocess""container""embedded""wasm"
Sourcepub fn validate(&self) -> ModelResult<()>
pub fn validate(&self) -> ModelResult<()>
Validate kind-specific constraints.
Every variant’s spec is checked here so the model is self-consistent without relying on transport-layer validators. If a new kind is added, extend this match — a missing branch is a compile error thanks to exhaustive matching.