aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/resources.rs
diff options
context:
space:
mode:
authorGravatar Daniel Carosone <Daniel.Carosone@gmail.com> 2020-10-07 09:22:38 +1100
committerGravatar Daniel Carosone <Daniel.Carosone@gmail.com> 2020-10-07 09:22:38 +1100
commitf386cb63cb6d3cd6642debfb4dc1bde97b325550 (patch)
tree30b21968997f809dbbba59117db93254607fa22d /macros/src/codegen/resources.rs
parent3d6a0ea64fb2661ee1150a84425f50c18c2de9ad (diff)
parentb1e1abae29591e50ebf345a2bd249a73e564cea9 (diff)
downloadrtic-f386cb63cb6d3cd6642debfb4dc1bde97b325550.tar.gz
rtic-f386cb63cb6d3cd6642debfb4dc1bde97b325550.tar.zst
rtic-f386cb63cb6d3cd6642debfb4dc1bde97b325550.zip
Merge branch 'master'
of https://github.com/rtic-rs/cortex-m-rtic
Diffstat (limited to 'macros/src/codegen/resources.rs')
-rw-r--r--macros/src/codegen/resources.rs24
1 files changed, 19 insertions, 5 deletions
diff --git a/macros/src/codegen/resources.rs b/macros/src/codegen/resources.rs
index 4196ee7a..38ea5245 100644
--- a/macros/src/codegen/resources.rs
+++ b/macros/src/codegen/resources.rs
@@ -10,13 +10,16 @@ pub fn codegen(
analysis: &Analysis,
extra: &Extra,
) -> (
- // const_app -- the `static [mut]` variables behind the proxies
+ // mod_app -- the `static [mut]` variables behind the proxies
Vec<TokenStream2>,
// mod_resources -- the `resources` module
TokenStream2,
+ // mod_resources_imports -- the `resources` module imports
+ Vec<TokenStream2>,
) {
- let mut const_app = vec![];
+ let mut mod_app = vec![];
let mut mod_resources = vec![];
+ let mut mod_resources_imports = vec![];
for (name, res, expr, _) in app.resources(analysis) {
let cfgs = &res.cfgs;
@@ -39,7 +42,7 @@ pub fn codegen(
};
let attrs = &res.attrs;
- const_app.push(quote!(
+ mod_app.push(quote!(
#[allow(non_upper_case_globals)]
#(#attrs)*
#(#cfgs)*
@@ -82,7 +85,13 @@ pub fn codegen(
)
};
- const_app.push(util::impl_mutex(
+ mod_resources_imports.push(quote!(
+ #[allow(non_camel_case_types)]
+ #(#cfgs)*
+ use super::resources::#name;
+ ));
+
+ mod_app.push(util::impl_mutex(
extra,
cfgs,
true,
@@ -97,6 +106,11 @@ pub fn codegen(
let mod_resources = if mod_resources.is_empty() {
quote!()
} else {
+ // Also import the resource module
+ mod_resources_imports.push(quote!(
+ use super::resources;
+ ));
+
quote!(mod resources {
use rtic::export::Priority;
@@ -104,5 +118,5 @@ pub fn codegen(
})
};
- (const_app, mod_resources)
+ (mod_app, mod_resources, mod_resources_imports)
}