diff --git a/src/bootstrap.rs b/src/bootstrap.rs index 87e4609..7d668aa 100644 --- a/src/bootstrap.rs +++ b/src/bootstrap.rs @@ -2,7 +2,7 @@ use std::collections::BTreeMap as Map; pub const TAKE_ALL: i16 = -1; -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct Config { pub anti_phishing_code: String, @@ -59,7 +59,7 @@ impl Config { } } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct Auth { pub name: String, #[serde(alias = "sshKey")] @@ -69,14 +69,14 @@ pub struct Auth { pub password: Option, } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct Network { pub name: String, pub interfaces: Vec, pub script: String, } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct NetworkInterface { pub var: String, pub n: i16, @@ -100,7 +100,7 @@ impl Default for SSHServer { } } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct LvmVG { #[serde(alias = "vg")] pub name: String, @@ -112,7 +112,7 @@ pub struct LvmVG { pub lvs: Vec, } -#[derive(Debug, Default, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)] pub struct LvmLVDefaults { #[serde(default)] pub fs: Filesystem, @@ -120,7 +120,7 @@ pub struct LvmLVDefaults { pub raid: Raid, } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "snake_case")] pub enum Filesystem { Ext4, @@ -147,7 +147,7 @@ impl Default for Filesystem { } } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct LvmLV { pub name: String, #[serde(skip_serializing_if = "Option::is_none")] @@ -158,14 +158,14 @@ pub struct LvmLV { pub size: LvSize, } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "snake_case")] pub enum LvSize { Size(String), Extents(String), } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct LvmPV { pub n: i16, #[serde(default, skip_serializing_if = "Vec::is_empty")] @@ -174,7 +174,7 @@ pub struct LvmPV { pub udev: Option, } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct CryptDev { pub name: String, // hit the limit of enum representation here (flatten + enum variant case) @@ -230,7 +230,7 @@ pub enum DevFilter<'t> { Udev(&'t UdevFilter), } -#[derive(Debug, serde::Deserialize, serde::Serialize, Clone)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "snake_case")] pub enum UdevFilter { Has(String), @@ -241,13 +241,13 @@ pub enum UdevFilter { Not(Box), } -#[derive(Debug, Default, Clone, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, Default, serde::Deserialize, serde::Serialize)] pub struct Raid { pub mirrors: Option, pub stripes: Option, } -#[derive(Debug, serde::Deserialize, serde::Serialize)] +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] pub struct Bootstrap { pub dev: String, pub seed: Option,