diff --git a/techtree-manager/src/collect.rs b/techtree-manager/src/collect.rs index c580db4..3c03497 100644 --- a/techtree-manager/src/collect.rs +++ b/techtree-manager/src/collect.rs @@ -88,7 +88,7 @@ fn element_from_issue(issue: &forgejo_api::structs::Issue) -> anyhow::Result anyhow::Result crate::tree::ElementType::Equipment, - "ty/process" => crate::tree::ElementType::Process, - "ty/knowledge" => crate::tree::ElementType::Knowledge, - t => anyhow::bail!("Unknown element type for issue #{issue_number}: {t:?}"), - }; + let ty = ty_labels + .first() + .unwrap() + .strip_prefix("Type/") + .unwrap() + .to_owned(); let status = match issue.state.context("Missing issue state")? { forgejo_api::structs::StateType::Open => { diff --git a/techtree-manager/src/tree.rs b/techtree-manager/src/tree.rs index e65410b..58e8fe1 100644 --- a/techtree-manager/src/tree.rs +++ b/techtree-manager/src/tree.rs @@ -10,7 +10,7 @@ pub struct Element { /// Description of this element pub description: String, /// Type of this element - pub ty: ElementType, + pub ty: String, /// Completion status of this element. pub status: ElementStatus, } @@ -54,7 +54,9 @@ impl Element { status, } = self; - let label = format!(r##"#{issue_number} | {status}\n{ty}\n{description}"##); + let label = format!( + r##"#{issue_number} | {status}\n{ty}\n{description}"## + ); let class = match (role, status) { (Some(SubtreeElementRole::ElementOfInterest), _) => "eoi", @@ -82,23 +84,6 @@ fn mermaid_classes() -> String { .to_owned() } -#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, serde::Serialize)] -pub enum ElementType { - Equipment, - Process, - Knowledge, -} - -impl std::fmt::Display for ElementType { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.write_str(match self { - ElementType::Equipment => "Equipment", - ElementType::Process => "Process", - ElementType::Knowledge => "Knowledge", - }) - } -} - #[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, serde::Serialize)] pub enum ElementStatus { Missing,