Newer
Older
use schemars::JsonSchema;
use std::collections::HashMap;
use uuid::Uuid;
#[derive(Serialize, JsonSchema)]
pub struct ConfigNode {
pub software: String,
pub version: String,
pub jobs: HashMap<String, Uuid>
}
impl ConfigNode {
pub fn new(software: String, version: String) -> ConfigNode {
ConfigNode {
software,
version,
jobs: HashMap::<String, Uuid>::new()
}
}
}
#[derive(Serialize, JsonSchema)]
pub struct Configs {
pub softwares: Vec<ConfigNode>
}
impl Configs {
pub fn new() -> Configs {
Configs {
softwares: Vec::<ConfigNode>::new()
impl Default for Configs {
fn default() -> Self {
Self::new()
}
}
#[derive(Serialize, JsonSchema)]
pub struct JobConfCommandParam {
pub name: String,
pub value_type: String,
pub default_value: Option<String>,
pub comment: Option<String>,
pub required: bool,
pub named: bool,
pub parameter_name: Option<String>
}
impl From<adapters::constants::JobConfCommandParam> for JobConfCommandParam {
fn from(value: adapters::constants::JobConfCommandParam) -> Self {
Self {
name: value.name,
value_type: value.value_type.to_string(),
default_value: value.default_value,
comment: value.comment,
required: value.required,
named: value.named,
parameter_name: value.parameter_name
}
}
#[derive(Serialize, JsonSchema)]
pub struct JobConfCommand {
#[serde(skip, default = "get_uuid")]
pub uuid: Uuid,
pub bin: String,
pub parameters: Vec<JobConfCommandParam>
}
impl From<adapters::constants::JobConfCommand> for JobConfCommand {
fn from(value: adapters::constants::JobConfCommand) -> Self {
let mut converted_parameters = Vec::<JobConfCommandParam>::new();
converted_parameters.push(JobConfCommandParam::from(param));