android_logcat/
expect_log.rs1use std::fmt::Debug;
2
3use crate::android_log::Log;
4
5pub trait ExpectLogcat<T> {
6 fn expect_log<S>(self, msg: S) -> T
10 where
11 S: AsRef<str>;
12}
13
14impl<T, E: Debug> ExpectLogcat<T> for Result<T, E> {
16 fn expect_log<S>(self, msg: S) -> T
17 where
18 S: AsRef<str>,
19 {
20 match self {
21 Ok(v) => v,
22 Err(e) => {
23 Log::e(&format!("{}: {:?}", msg.as_ref(), e));
24 panic!("{}: {:?}", msg.as_ref(), e);
25 }
26 }
27 }
28}
29
30impl<T> ExpectLogcat<T> for Option<T> {
32 fn expect_log<S>(self, msg: S) -> T
33 where
34 S: AsRef<str>,
35 {
36 match self {
37 Some(v) => v,
38 None => {
39 Log::e(msg.as_ref());
40 panic!("{}", msg.as_ref());
41 }
42 }
43 }
44}