aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2021-04-07 11:06:57 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2021-04-08 09:15:38 +0200
commit2068eae9280881e34b5cc2d76b0b1a61402223e7 (patch)
tree21b4fa3bb6f5bac8f9430758a39140b40d6bcdfd /macros/src/codegen.rs
parent6c8257bb73de0f68072467447692a1f7dff555f9 (diff)
downloadrtic-2068eae9280881e34b5cc2d76b0b1a61402223e7.tar.gz
rtic-2068eae9280881e34b5cc2d76b0b1a61402223e7.tar.zst
rtic-2068eae9280881e34b5cc2d76b0b1a61402223e7.zip
Type aliases now work in the app module
Diffstat (limited to 'macros/src/codegen.rs')
-rw-r--r--macros/src/codegen.rs16
1 files changed, 13 insertions, 3 deletions
diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs
index c5d95687..cf728a7d 100644
--- a/macros/src/codegen.rs
+++ b/macros/src/codegen.rs
@@ -112,8 +112,6 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
let user_imports = &app.user_imports;
quote! {
- pub use rtic::Monotonic as _;
-
#[doc = #doc]
#[allow(non_snake_case)]
pub mod #name {
@@ -143,6 +141,18 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
})
.collect();
+ let monotonics = if !monotonic_parts.is_empty() {
+ quote!(
+ pub use rtic::Monotonic as _;
+
+ /// Holds static methods for each monotonic.
+ pub mod monotonics {
+ #(#monotonic_parts)*
+ }
+ )
+ } else {
+ quote!()
+ };
let rt_err = util::rt_err_ident();
quote!(
@@ -151,7 +161,7 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
/// Always include the device crate which contains the vector table
use #device as #rt_err;
- #(#monotonic_parts)*
+ #monotonics
#(#user_imports)*