Skip to main content

xchecker_runner/
types.rs

1//! Types used by the runner module
2
3use serde::{Deserialize, Serialize};
4
5/// Runner modes for cross-platform Claude CLI execution
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7pub enum RunnerMode {
8    /// Automatic detection (try native first, then WSL on Windows)
9    Auto,
10    /// Native execution (spawn claude directly)
11    Native,
12    /// WSL execution (use wsl.exe --exec on Windows)
13    Wsl,
14}
15
16impl RunnerMode {
17    /// Convert runner mode to string representation.
18    #[must_use]
19    pub const fn as_str(&self) -> &'static str {
20        match self {
21            Self::Auto => "auto",
22            Self::Native => "native",
23            Self::Wsl => "wsl",
24        }
25    }
26}