1#![warn(missing_docs)]
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, Copy)]
7pub enum ChangeType {
8 #[serde(rename = "breaking")]
10 Breaking,
11 #[serde(rename = "feature")]
13 Feature,
14 #[serde(rename = "fix")]
16 Fix,
17 #[serde(rename = "docs")]
19 Docs,
20 #[serde(rename = "refactor")]
22 Refactor,
23 #[serde(rename = "perf")]
25 Perf,
26 #[serde(rename = "test")]
28 Test,
29 #[serde(rename = "build")]
31 Build,
32 #[serde(rename = "chore")]
34 Chore,
35}
36
37impl ChangeType {
38 pub fn as_str(&self) -> &str {
40 match self {
41 ChangeType::Breaking => "breaking",
42 ChangeType::Feature => "feature",
43 ChangeType::Fix => "fix",
44 ChangeType::Docs => "docs",
45 ChangeType::Refactor => "refactor",
46 ChangeType::Perf => "perf",
47 ChangeType::Test => "test",
48 ChangeType::Build => "build",
49 ChangeType::Chore => "chore",
50 }
51 }
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
56pub enum FileChangeType {
57 Added,
59 Modified,
61 Deleted,
63}
64
65#[derive(Debug, Clone, PartialEq, Eq)]
67pub enum VcsType {
68 Git,
70 Svn,
72 Mercurial,
74 None,
76}