1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use serde::Deserialize;
use serde::Serialize;

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum ProjectAction {
    ViewTemplate,
    CreateTemplate,
    UpdateTemplate,
    DeleteTemplate,
    ViewWorker,
    CreateWorker,
    UpdateWorker,
    DeleteWorker,
    ViewProjectGrants,
    CreateProjectGrants,
    DeleteProjectGrants,
    ViewApiDefinition,
    CreateApiDefinition,
    UpdateApiDefinition,
    DeleteApiDefinition,
}

impl ToString for ProjectAction{
    fn to_string(&self) -> String {
        match self {
            ProjectAction::ViewTemplate => "ViewTemplate".to_string(),
            ProjectAction::CreateTemplate => "CreateTemplate".to_string(),
            ProjectAction::UpdateTemplate => "UpdateTemplate".to_string(),
            ProjectAction::DeleteTemplate => "DeleteTemplate".to_string(),
            ProjectAction::ViewWorker => "ViewWorker".to_string(),
            ProjectAction::CreateWorker => "CreateWorker".to_string(),
            ProjectAction::UpdateWorker => "UpdateWorker".to_string(),
            ProjectAction::DeleteWorker => "DeleteWorker".to_string(),
            ProjectAction::ViewProjectGrants => "ViewProjectGrants".to_string(),
            ProjectAction::CreateProjectGrants => "CreateProjectGrants".to_string(),
            ProjectAction::DeleteProjectGrants => "DeleteProjectGrants".to_string(),
            ProjectAction::ViewApiDefinition => "ViewApiDefinition".to_string(),
            ProjectAction::CreateApiDefinition => "CreateApiDefinition".to_string(),
            ProjectAction::UpdateApiDefinition => "UpdateApiDefinition".to_string(),
            ProjectAction::DeleteApiDefinition => "DeleteApiDefinition".to_string(),
        }
    }
}