#![allow(deprecated)]
#![allow(dead_code)]
use tree_type::tree_type;
#[cfg(not(feature = "codegen-v2"))]
tree_type! {
ProjectManagementRoot {
tasks/ as ProjectTasksTemplate {
#[required]
readme("README.md") as TasksReadMe,
#[required]
workflow("workflow.md") as TasksWorkflowTemplate,
#[required]
lessons("lessons-learned.md") as TasksLessonsLearned,
},
#[required]
projects/ as ProjectsDir {
[project: String]/ as ProjectDir {
#[default(default_project_management_config)]
config(".project-management.toml") as ProjectConfigFile,
#[required]
tasks/ as TasksDir {
#[symlink(/tasks/readme)]
readme("README.md"),
#[symlink(/tasks/workflow)]
workflow("workflow.md"),
#[symlink(/tasks/lessons)]
lessons("lessons-learned.md"),
#[required]
#[default(default_task_counter)]
counter(".task-counter") as TaskCounter,
template("template.md") as TaskTemplate,
#[required]
active/ as ActiveTasksDir {
[id: String] as ActiveTaskFile,
},
#[required]
backlog/ as BacklogDir {
#[required]
p1/("p1-critical"),
#[required]
p2/("p2-high"),
#[required]
p3/("p3-medium"),
#[required]
p4/("p4-low"),
#[required]
p5/("p5-future"),
#[required]
p6/("p6-enhancement"),
#[required]
p7/("p7-optional"),
#[required]
p8/("p8-experimental"),
#[required]
p9/("p9-research")
},
#[required]
completed/ as CompletedTasksDir ,
obsolete/ as ObsoleteTasksDir,
},
implementation/ as ImplementationDir,
}
}
}
}
#[cfg(feature = "codegen-v2")]
tree_type! {
ProjectManagementRoot {
tasks/ as ProjectTasksTemplate {
#[required]
readme("README.md") as TasksReadMe,
#[required]
workflow("workflow.md") as TasksWorkflowTemplate,
#[required]
lessons("lessons-learned.md") as TasksLessonsLearned,
},
#[required]
projects/ as ProjectsDir {
[project: String]/ as ProjectDir {
#[default(default_project_management_config)]
config(".project-management.toml") as ProjectConfigFile,
#[required]
tasks/ as TasksDir {
#[symlink(/tasks/readme)]
readme("README.md"),
#[symlink(/tasks/workflow)]
workflow("workflow.md"),
#[symlink(/tasks/lessons)]
lessons("lessons-learned.md"),
#[required]
#[default(default_task_counter)]
counter(".task-counter") as TaskCounter,
template("template.md") as TaskTemplate,
#[required]
active/ as ActiveTasksDir {
[id: String] as ActiveTaskFile,
},
#[required]
backlog/ as BacklogDir {
#[required]
p1/("p1-critical"),
#[required]
p2/("p2-high"),
#[required]
p3/("p3-medium"),
#[required]
p4/("p4-low"),
#[required]
p5/("p5-future"),
#[required]
p6/("p6-enhancement"),
#[required]
p7/("p7-optional"),
#[required]
p8/("p8-experimental"),
#[required]
p9/("p9-research")
},
#[required]
completed/ as CompletedTasksDir ,
obsolete/ as ObsoleteTasksDir,
},
implementation/ as ImplementationDir,
}
}
}
}
fn default_task_counter(_counter: &TaskCounter) -> std::io::Result<String> {
Ok("0".to_string())
}
fn default_project_management_config(_config: &ProjectConfigFile) -> std::io::Result<String> {
Ok("default = true".to_string())
}
fn main() -> std::io::Result<()> {
Ok(())
}