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

View File

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