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}