diff options
author | 2023-01-07 14:26:55 +0100 | |
---|---|---|
committer | 2023-03-01 00:31:08 +0100 | |
commit | 76595b7aedd2a14aea8569b75fabe62120f93230 (patch) | |
tree | 5b94ff5b348a57347066e97f1bac8dda1d716b80 /macros/src/codegen/idle.rs | |
parent | b054e871d486e8eb35e3c98a73652640238c5e7d (diff) | |
download | rtic-76595b7aedd2a14aea8569b75fabe62120f93230.tar.gz rtic-76595b7aedd2a14aea8569b75fabe62120f93230.tar.zst rtic-76595b7aedd2a14aea8569b75fabe62120f93230.zip |
All codegen is now explicit
Diffstat (limited to 'macros/src/codegen/idle.rs')
-rw-r--r-- | macros/src/codegen/idle.rs | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/macros/src/codegen/idle.rs b/macros/src/codegen/idle.rs index 1f05d129..0c833ef3 100644 --- a/macros/src/codegen/idle.rs +++ b/macros/src/codegen/idle.rs @@ -7,20 +7,7 @@ use proc_macro2::TokenStream as TokenStream2; use quote::quote; /// Generates support code for `#[idle]` functions -pub fn codegen( - app: &App, - analysis: &Analysis, -) -> ( - // mod_app_idle -- the `${idle}Resources` constructor - Vec<TokenStream2>, - // root_idle -- items that must be placed in the root of the crate: - // - the `${idle}Locals` struct - // - the `${idle}Resources` struct - // - the `${idle}` module, which contains types like `${idle}::Context` - Vec<TokenStream2>, - // user_idle - Option<TokenStream2>, -) { +pub fn codegen(app: &App, analysis: &Analysis) -> TokenStream2 { if let Some(idle) = &app.idle { let mut mod_app = vec![]; let mut root_idle = vec![]; @@ -58,10 +45,14 @@ pub fn codegen( } )); - (mod_app, root_idle, user_idle) - } else { - // TODO: No idle defined, check for 0-priority tasks and generate an executor if needed + quote!( + #(#mod_app)* + + #(#root_idle)* - (vec![], vec![], None) + #user_idle + ) + } else { + quote!() } } |