ralph/contracts/config/
enums.rs1use schemars::JsonSchema;
10use serde::{Deserialize, Serialize};
11
12#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Default, JsonSchema)]
14#[serde(rename_all = "snake_case")]
15pub enum ProjectType {
16 #[default]
17 Code,
18 Docs,
19}
20
21#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Default, JsonSchema)]
23#[serde(rename_all = "snake_case")]
24pub enum GitRevertMode {
25 #[default]
26 Ask,
27 Enabled,
28 Disabled,
29}
30
31impl std::str::FromStr for GitRevertMode {
32 type Err = &'static str;
33
34 fn from_str(value: &str) -> Result<Self, Self::Err> {
35 match value.trim().to_lowercase().as_str() {
36 "ask" => Ok(GitRevertMode::Ask),
37 "enabled" => Ok(GitRevertMode::Enabled),
38 "disabled" => Ok(GitRevertMode::Disabled),
39 _ => Err("git_revert_mode must be 'ask', 'enabled', or 'disabled'"),
40 }
41 }
42}
43
44#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Default, JsonSchema)]
46#[serde(rename_all = "snake_case")]
47pub enum ScanPromptVersion {
48 V1,
50 #[default]
52 V2,
53}