aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen.rs
diff options
context:
space:
mode:
authorGravatar Henrik Tjäder <henrik@tjaders.com> 2020-10-14 10:15:35 +0000
committerGravatar Henrik Tjäder <henrik@tjaders.com> 2020-10-15 15:56:20 +0000
commit37ee3a47afbbbf57751243d6d32aaac78073780c (patch)
treeaf4eaf935f3c9c9a8c56039400e856da7928f668 /macros/src/codegen.rs
parent6c1f4a7b5d30502e7d7d66e4a9235c7933cf825d (diff)
downloadrtic-37ee3a47afbbbf57751243d6d32aaac78073780c.tar.gz
rtic-37ee3a47afbbbf57751243d6d32aaac78073780c.tar.zst
rtic-37ee3a47afbbbf57751243d6d32aaac78073780c.zip
Create Enum containing all tasks
Diffstat (limited to 'macros/src/codegen.rs')
-rw-r--r--macros/src/codegen.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs
index f230d395..a44266ad 100644
--- a/macros/src/codegen.rs
+++ b/macros/src/codegen.rs
@@ -126,6 +126,20 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
let user_code = app.user_code.clone();
let name = &app.name;
let device = extra.device;
+
+ // Get the list of all tasks
+ // Currently unused, might be useful
+ let task_list = analysis.tasks.clone();
+
+ let mut tasks = vec![];
+ if !task_list.is_empty() {
+ tasks.push(quote!(
+ enum Tasks {
+ #(#task_list),*
+ }
+ ));
+ }
+
quote!(
#(#user)*
@@ -141,6 +155,9 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
#(#root_software_tasks)*
+ /// Unused
+ #(#tasks)*
+
/// Implementation details
mod #name {
/// Always include the device crate which contains the vector table