aboutsummaryrefslogtreecommitdiff
path: root/examples/src/example_common.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2020-11-01 17:17:24 +0100
committerDario Nieuwenhuis <[email protected]>2020-11-01 17:17:24 +0100
commit5e8608c7a5b1e4e92f1fb650ea0ef47e5a6df563 (patch)
treef731a0329d92d8fae4168957f8e90716b58ad00b /examples/src/example_common.rs
parent2c13e251849fd3e3cf06e2d5363c311ac880c77d (diff)
Make defmt optional with new `anyfmt` crate
Diffstat (limited to 'examples/src/example_common.rs')
-rw-r--r--examples/src/example_common.rs51
1 files changed, 1 insertions, 50 deletions
diff --git a/examples/src/example_common.rs b/examples/src/example_common.rs
index 65bfe6bb1..1a12fa69a 100644
--- a/examples/src/example_common.rs
+++ b/examples/src/example_common.rs
@@ -4,7 +4,7 @@ use defmt_rtt as _; // global logger
4use nrf52840_hal as _; 4use nrf52840_hal as _;
5use panic_probe as _; 5use panic_probe as _;
6 6
7pub use defmt::{info, intern}; 7pub use anyfmt::*;
8 8
9use core::sync::atomic::{AtomicUsize, Ordering}; 9use core::sync::atomic::{AtomicUsize, Ordering};
10 10
@@ -16,52 +16,3 @@ fn timestamp() -> u64 {
16 COUNT.store(n + 1, Ordering::Relaxed); 16 COUNT.store(n + 1, Ordering::Relaxed);
17 n as u64 17 n as u64
18} 18}
19
20macro_rules! depanic {
21 ($( $i:expr ),*) => {
22 {
23 defmt::error!($( $i ),*);
24 panic!();
25 }
26 }
27}
28
29pub trait Dewrap<T> {
30 /// dewrap = defmt unwrap
31 fn dewrap(self) -> T;
32
33 /// dexpect = defmt expect
34 fn dexpect<M: defmt::Format>(self, msg: M) -> T;
35}
36
37impl<T> Dewrap<T> for Option<T> {
38 fn dewrap(self) -> T {
39 match self {
40 Some(t) => t,
41 None => depanic!("Dewrap failed: enum is none"),
42 }
43 }
44
45 fn dexpect<M: defmt::Format>(self, msg: M) -> T {
46 match self {
47 Some(t) => t,
48 None => depanic!("Unexpected None: {:?}", msg),
49 }
50 }
51}
52
53impl<T, E: defmt::Format> Dewrap<T> for Result<T, E> {
54 fn dewrap(self) -> T {
55 match self {
56 Ok(t) => t,
57 Err(e) => depanic!("Dewrap failed: {:?}", e),
58 }
59 }
60
61 fn dexpect<M: defmt::Format>(self, msg: M) -> T {
62 match self {
63 Ok(t) => t,
64 Err(e) => depanic!("Unexpected error: {:?}: {:?}", msg, e),
65 }
66 }
67}