use super::*;
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub struct SimpleHostLayer {
#[serde(flatten)]
pub common: CommonHostLayer,
pub download_url: Option<String>,
}
#[derive(Debug, Default, Clone)]
pub struct SimpleHostConfig {
pub common: CommonHostConfig,
pub download_url: String,
}
impl SimpleHostConfig {
pub fn defaults_for_workspace(_workspaces: &WorkspaceGraph, common: &CommonHostConfig) -> Self {
Self {
common: common.clone(),
download_url: String::new(),
}
}
}
impl ApplyLayer for SimpleHostConfig {
type Layer = SimpleHostLayer;
fn apply_layer(
&mut self,
Self::Layer {
common,
download_url,
}: Self::Layer,
) {
self.common.apply_layer(common);
self.download_url.apply_val(download_url);
}
}
impl ApplyLayer for SimpleHostLayer {
type Layer = SimpleHostLayer;
fn apply_layer(
&mut self,
Self::Layer {
common,
download_url,
}: Self::Layer,
) {
self.common.apply_layer(common);
self.download_url.apply_opt(download_url);
}
}
impl std::ops::Deref for SimpleHostConfig {
type Target = CommonHostConfig;
fn deref(&self) -> &Self::Target {
&self.common
}
}