use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
pub mod component;
pub mod env;
pub mod service;
pub mod workload;
pub use component::Config as Component;
pub use env::Config as Env;
pub use service::Config as Service;
pub use workload::Config as Workload;
#[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct Plugin {
#[serde(default)]
pub src: Box<str>,
}
#[derive(Clone, Debug, Deserialize, Serialize, Eq, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct Manifest<T> {
#[serde(default)]
pub plugins: BTreeMap<Box<str>, Plugin>,
#[serde(default)]
pub services: BTreeMap<Box<str>, service::Config<T>>,
#[serde(default)]
pub workloads: BTreeMap<Box<str>, workload::Config<T>>,
}
impl<T> Default for Manifest<T> {
fn default() -> Self {
Self {
plugins: BTreeMap::default(),
services: BTreeMap::default(),
workloads: BTreeMap::default(),
}
}
}