aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen.rs
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2021-11-09 10:15:11 +0000
committerGravatar GitHub <noreply@github.com> 2021-11-09 10:15:11 +0000
commitb4929032d5f013985becb88faf9b847236afe172 (patch)
treebbdd1ccb6ebda2e4be8362709a8188ae1bed895a /macros/src/codegen.rs
parent4f3c5baf49bde675dfa8faf6e5311d38cbb5d654 (diff)
parent5ab5112271a9dbef6d875ad89706fc726e126b95 (diff)
downloadrtic-b4929032d5f013985becb88faf9b847236afe172.tar.gz
rtic-b4929032d5f013985becb88faf9b847236afe172.tar.zst
rtic-b4929032d5f013985becb88faf9b847236afe172.zip
Merge #547v0.6.0-rc.4
547: New monotonic trait r=AfoHT a=korken89 Co-authored-by: Emil Fresk <emil.fresk@gmail.com>
Diffstat (limited to 'macros/src/codegen.rs')
-rw-r--r--macros/src/codegen.rs15
1 files changed, 3 insertions, 12 deletions
diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs
index f07326ba..422de5f3 100644
--- a/macros/src/codegen.rs
+++ b/macros/src/codegen.rs
@@ -108,10 +108,6 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
let name = &monotonic.ident;
let name_str = &name.to_string();
let ident = util::monotonic_ident(&name_str);
- let panic_str = &format!(
- "Use of monotonic '{}' before it was passed to the runtime",
- name_str
- );
let doc = &format!(
"This module holds the static implementation for `{}::now()`",
name_str
@@ -131,18 +127,13 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 {
pub mod #name {
/// Read the current time from this monotonic
- pub fn now() -> rtic::time::Instant<super::super::#name> {
+ pub fn now() -> <super::super::#name as rtic::Monotonic>::Instant {
rtic::export::interrupt::free(|_| {
use rtic::Monotonic as _;
- use rtic::time::Clock as _;
if let Some(m) = unsafe{ &mut *super::super::#ident.get_mut() } {
- if let Ok(v) = m.try_now() {
- v
- } else {
- unreachable!("Your monotonic is not infallible!")
- }
+ m.now()
} else {
- panic!(#panic_str);
+ <super::super::#name as rtic::Monotonic>::zero()
}
})
}