Skip to main content

nargo_changes/
types.rs

1#![warn(missing_docs)]
2
3use serde::{Deserialize, Serialize};
4
5/// Change set type.
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash, Copy)]
7pub enum ChangeType {
8    /// A breaking change.
9    #[serde(rename = "breaking")]
10    Breaking,
11    /// A new feature.
12    #[serde(rename = "feature")]
13    Feature,
14    /// A bug fix.
15    #[serde(rename = "fix")]
16    Fix,
17    /// A documentation change.
18    #[serde(rename = "docs")]
19    Docs,
20    /// A refactoring change.
21    #[serde(rename = "refactor")]
22    Refactor,
23    /// A performance improvement.
24    #[serde(rename = "perf")]
25    Perf,
26    /// A test change.
27    #[serde(rename = "test")]
28    Test,
29    /// A build change.
30    #[serde(rename = "build")]
31    Build,
32    /// A chore change.
33    #[serde(rename = "chore")]
34    Chore,
35}
36
37impl ChangeType {
38    /// Returns the string representation of the change type.
39    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/// File change type.
55#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
56pub enum FileChangeType {
57    /// A new file was added.
58    Added,
59    /// An existing file was modified.
60    Modified,
61    /// A file was deleted.
62    Deleted,
63}
64
65/// Version control system type.
66#[derive(Debug, Clone, PartialEq, Eq)]
67pub enum VcsType {
68    /// Git version control system.
69    Git,
70    /// Subversion (SVN) version control system.
71    Svn,
72    /// Mercurial (Hg) version control system.
73    Mercurial,
74    /// No version control system detected.
75    None,
76}