+use serde::Deserialize;
use std::net::{IpAddr, Ipv4Addr};
use std::{cmp, fmt};
};
use crate::utils::{CidrAddress, Fqdn};
-#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[derive(Copy, Clone, Debug, Deserialize, Eq, PartialEq)]
+#[serde(rename_all = "lowercase")]
pub enum BtrfsRaidLevel {
Raid0,
Raid1,
}
}
-#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[derive(Copy, Clone, Debug, Deserialize, Eq, PartialEq)]
+#[serde(rename_all = "lowercase")]
pub enum ZfsRaidLevel {
Raid0,
Raid1,
Raid10,
+ #[serde(rename = "raidz-1")]
RaidZ,
+ #[serde(rename = "raidz-2")]
RaidZ2,
+ #[serde(rename = "raidz-3")]
RaidZ3,
}
}
}
-#[derive(Copy, Clone, Debug, Eq, PartialEq)]
+#[derive(Copy, Clone, Debug, Deserialize, Eq, PartialEq)]
+#[serde(rename_all = "lowercase")]
pub enum FsType {
Ext4,
Xfs,
}
}
-#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
+#[derive(Copy, Clone, Debug, Default, Deserialize, Eq, PartialEq)]
+#[serde(rename_all(deserialize = "lowercase"))]
pub enum ZfsCompressOption {
#[default]
On,
&[On, Off, Lzjb, Lz4, Zle, Gzip, Zstd]
};
-#[derive(Copy, Clone, Debug, Default, Eq, PartialEq)]
+#[derive(Copy, Clone, Debug, Default, Deserialize, Eq, PartialEq)]
+#[serde(rename_all = "kebab-case")]
pub enum ZfsChecksumOption {
#[default]
On,
- Off,
Fletcher4,
Sha256,
}
pub const ZFS_CHECKSUM_OPTIONS: &[ZfsChecksumOption] = {
use ZfsChecksumOption::*;
- &[On, Off, Fletcher4, Sha256]
+ &[On, Fletcher4, Sha256]
};
#[derive(Clone, Debug)]
Btrfs(BtrfsBootdiskOptions),
}
-#[derive(Clone, Debug, PartialEq)]
+#[derive(Clone, Debug, Deserialize, PartialEq)]
pub struct Disk {
pub index: String,
pub path: String,
impl cmp::PartialOrd for Disk {
fn partial_cmp(&self, other: &Self) -> Option<cmp::Ordering> {
- self.index.partial_cmp(&other.index)
+ Some(self.cmp(other))
}
}
let timezone = locales
.cczones
.get(&country)
- .and_then(|zones| zones.get(0))
+ .and_then(|zones| zones.first())
.cloned()
.unwrap_or_else(|| "UTC".to_owned());
}
impl NetworkOptions {
- const DEFAULT_DOMAIN: &str = "example.invalid";
+ const DEFAULT_DOMAIN: &'static str = "example.invalid";
pub fn defaults_from(setup: &SetupInfo, network: &NetworkInfo) -> Self {
let mut this = Self {
let mut filled = false;
if let Some(gw) = &routes.gateway4 {
if let Some(iface) = network.interfaces.get(&gw.dev) {
- this.ifname = iface.name.clone();
+ this.ifname.clone_from(&iface.name);
if let Some(addresses) = &iface.addresses {
if let Some(addr) = addresses.iter().find(|addr| addr.is_ipv4()) {
this.gateway = gw.gateway;
if let Some(iface) = network.interfaces.get(&gw.dev) {
if let Some(addresses) = &iface.addresses {
if let Some(addr) = addresses.iter().find(|addr| addr.is_ipv6()) {
- this.ifname = iface.name.clone();
+ this.ifname.clone_from(&iface.name);
this.gateway = gw.gateway;
this.address = addr.clone();
}