This commit is contained in:
Biedermann Steve 2024-06-06 10:49:58 +02:00
parent eb246b7b29
commit 1016308dcb
2 changed files with 15 additions and 15 deletions

View File

@ -32,14 +32,15 @@ pub struct Topic {
#[derive(JsonSchema, Debug, Deserialize, Serialize)]
pub struct Definition {
pub name: String,
pub value: String,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub description: String,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub additional_info: Vec<String>,
}
#[derive(JsonSchema, Debug, Deserialize, Serialize)]
pub struct ConfigDefault {
pub struct Config {
pub name: String,
#[serde(rename = "type")]
pub typ: String,
@ -131,10 +132,10 @@ pub struct Project {
pub description: String,
#[serde(default, skip_serializing_if = "IndexMap::is_empty")]
pub topics: IndexMap<String, Topic>,
#[serde(default, skip_serializing_if = "IndexMap::is_empty")]
pub definitions: IndexMap<String, Definition>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub definitions: Vec<Definition>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub config_defaults: Vec<ConfigDefault>,
pub config: Vec<Config>,
}
#[must_use]

View File

@ -252,22 +252,21 @@ fn to_markdown(requirements: PathBuf, add_toc: bool) -> anyhow::Result<String> {
if !project.definitions.is_empty() {
output.push(s!("## Definitions"));
for definition in project.definitions {
output.push(format!(
"- {}: {}",
definition.name.trim(),
definition.value.trim()
));
for (name, definition) in project.definitions {
output.push(format!("- {}: {}", name.trim(), definition.value.trim()));
if !definition.description.is_empty() {
output.push(format!(" - {}", definition.description));
}
for info in definition.additional_info {
output.push(format!(" - {}", info.trim()))
output.push(format!(" - {}", info.trim()));
}
}
output.push(nl());
}
if !project.config_defaults.is_empty() {
output.push(s!("## Config Defaults"));
for default in project.config_defaults {
if !project.config.is_empty() {
output.push(s!("## Config"));
for default in project.config {
output.push(format!("- **{}**", default.name.trim()));
output.push(format!(" - Type: {}", default.typ.trim()));
if let Some(unit) = default.unit {