1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
4#[serde(rename_all = "snake_case")]
5pub enum HostOs {
6 Windows,
7 Linux,
8 Macos,
9}
10
11#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
12#[serde(rename_all = "snake_case")]
13pub enum ShellFamily {
14 Powershell,
15 Posix,
16}
17
18#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
19#[serde(rename_all = "snake_case")]
20pub enum PathStyle {
21 Windows,
22 Posix,
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
26pub struct HostRuntimeContext {
27 pub os: HostOs,
28 pub arch: String,
29 pub shell_family: ShellFamily,
30 pub path_style: PathStyle,
31}