aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/idle.rs
diff options
context:
space:
mode:
Diffstat (limited to 'macros/src/codegen/idle.rs')
-rw-r--r--macros/src/codegen/idle.rs27
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!()
}
}