From 70c55363a91572790ba5d49b70c58040f112e55c Mon Sep 17 00:00:00 2001
From: notgne2
Date: Fri, 8 Jan 2021 18:24:04 -0700
Subject: Restructure project
---
src/data.rs | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 src/data.rs
(limited to 'src/data.rs')
diff --git a/src/data.rs b/src/data.rs
new file mode 100644
index 0000000..f557e41
--- /dev/null
+++ b/src/data.rs
@@ -0,0 +1,73 @@
+// SPDX-FileCopyrightText: 2020 Serokell
+//
+// SPDX-License-Identifier: MPL-2.0
+
+use merge::Merge;
+
+use std::collections::HashMap;
+
+#[derive(Deserialize, Debug, Clone, Merge)]
+pub struct GenericSettings {
+ #[serde(rename(deserialize = "sshUser"))]
+ pub ssh_user: Option,
+ pub user: Option,
+ #[serde(
+ skip_serializing_if = "Vec::is_empty",
+ default,
+ rename(deserialize = "sshOpts")
+ )]
+ #[merge(strategy = merge::vec::append)]
+ pub ssh_opts: Vec,
+ #[serde(rename(deserialize = "fastConnection"))]
+ pub fast_connection: Option,
+ #[serde(rename(deserialize = "autoRollback"))]
+ pub auto_rollback: Option,
+ #[serde(rename(deserialize = "confirmTimeout"))]
+ pub confirm_timeout: Option,
+ #[serde(rename(deserialize = "tempPath"))]
+ pub temp_path: Option,
+ #[serde(rename(deserialize = "magicRollback"))]
+ pub magic_rollback: Option,
+}
+
+#[derive(Deserialize, Debug, Clone)]
+pub struct NodeSettings {
+ pub hostname: String,
+ pub profiles: HashMap,
+ #[serde(
+ skip_serializing_if = "Vec::is_empty",
+ default,
+ rename(deserialize = "profilesOrder")
+ )]
+ pub profiles_order: Vec,
+}
+
+#[derive(Deserialize, Debug, Clone)]
+pub struct ProfileSettings {
+ pub path: String,
+ #[serde(rename(deserialize = "profilePath"))]
+ pub profile_path: Option,
+}
+
+#[derive(Deserialize, Debug, Clone)]
+pub struct Profile {
+ #[serde(flatten)]
+ pub profile_settings: ProfileSettings,
+ #[serde(flatten)]
+ pub generic_settings: GenericSettings,
+}
+
+#[derive(Deserialize, Debug, Clone)]
+pub struct Node {
+ #[serde(flatten)]
+ pub generic_settings: GenericSettings,
+ #[serde(flatten)]
+ pub node_settings: NodeSettings,
+}
+
+#[derive(Deserialize, Debug, Clone)]
+pub struct Data {
+ #[serde(flatten)]
+ pub generic_settings: GenericSettings,
+ pub nodes: HashMap,
+}
--
cgit v1.2.3