use super::common::*;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
#[serde(deny_unknown_fields)]
pub struct Network {
#[serde(skip_serializing_if = "Option::is_none")]
pub driver: Option<RawOr<String>>,
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
pub driver_opts: BTreeMap<String, RawOr<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
serialize_with = "serialize_opt_true_or_struct",
deserialize_with = "deserialize_opt_true_or_struct"
)]
pub external: Option<ExternalNetwork>,
#[serde(default, skip_serializing_if = "is_false")]
pub internal: bool,
#[serde(default, skip_serializing_if = "is_false")]
pub enable_ipv6: bool,
#[serde(
default,
skip_serializing_if = "BTreeMap::is_empty",
deserialize_with = "deserialize_map_or_key_value_list"
)]
pub labels: BTreeMap<String, RawOr<String>>,
#[doc(hidden)]
#[serde(default, skip_serializing, skip_deserializing)]
pub _hidden: (),
}
derive_standard_impls_for!(Network, {
driver, driver_opts, external, internal, enable_ipv6, labels, _hidden
});
#[test]
fn network_handles_driver_correctly() {
let yaml = r#"---
driver: default
enable_ipv6: true
internal: true
labels:
com.example: foo
"#;
assert_roundtrip!(Network, yaml);
}
#[test]
fn network_handles_external_true_correctly() {
let yaml = r#"---
external: true
"#;
assert_roundtrip!(Network, yaml);
}
#[test]
fn network_handles_external_name_correctly() {
let yaml = r#"---
external:
name: bridge
"#;
assert_roundtrip!(Network, yaml);
}