use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::BTreeMap;
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum ServiceKind {
#[default]
Extension,
Gateway,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum RestartPolicy {
#[default]
Never,
OnFailure,
Always,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServiceConfig {
#[serde(default)]
pub description: Option<String>,
#[serde(default)]
pub kind: ServiceKind,
#[serde(rename = "crate", alias = "krate")]
pub krate: String,
#[serde(default)]
pub restart: RestartPolicy,
#[serde(default = "default_true")]
pub enabled: bool,
#[serde(default)]
pub env: BTreeMap<String, String>,
#[serde(default)]
pub config: Value,
}
fn default_true() -> bool {
true
}