Sfoglia il codice sorgente

Add basic configuration structure

Samuel W. Flint 5 anni fa
parent
commit
99413a68b4
1 ha cambiato i file con 64 aggiunte e 0 eliminazioni
  1. 64 0
      src/config.rs

+ 64 - 0
src/config.rs

@@ -0,0 +1,64 @@
+use serde::{Serialize, Deserialize};
+use std::collections::HashMap;
+
+#[derive(Serialize, Deserialize)]
+pub struct Config {
+    #[serde(rename(serialize = "repo_type", deserialize = "repo_type"), default)]
+    repo_types: HashMap<String,RepoType>,
+    #[serde(rename(serialize = "repository", deserialize = "repository"), default)]
+    repositories: HashMap<String,Repository>,
+    #[serde(rename(serialize = "action", deserialize = "action"), default)]
+    actions: HashMap<String,Action>,
+    #[serde(rename(serialize = "group", deserialize = "group"), default)]
+    groups: HashMap<String, Group>,
+}
+
+#[derive(Serialize, Deserialize)]
+pub struct RepoType {
+    #[serde(default)]
+    name: String,
+    #[serde(default)]
+    description: String,
+    #[serde(default)]
+    create: String,
+    #[serde(default)]
+    inward: String,
+    #[serde(default)]
+    outward: String,
+}
+
+#[derive(Serialize, Deserialize)]
+pub struct Repository {
+    #[serde(default)]
+    name: String,
+    #[serde(default)]
+    location: String,
+    #[serde(default)]
+    repo_type: String,
+    #[serde(default)]
+    auto_create: bool,
+    #[serde(default)]
+    disabled: bool,
+    #[serde(default)]
+    options: HashMap<String, String>
+}
+
+#[derive(Serialize, Deserialize)]
+pub struct Action {
+    #[serde(default)]
+    name: String,
+    #[serde(default)]
+    command: String,
+    #[serde(default)]
+    disabled: bool,
+}
+
+#[derive(Serialize, Deserialize)]
+pub struct Group {
+    #[serde(default)]
+    name: String,
+    #[serde(default)]
+    actions_after: Vec<String>,
+    #[serde(default)]
+    members: Vec<String>
+}