tuwunel_core/utils/result/
debug_inspect.rs1use super::Result;
2
3pub trait DebugInspect<T, E> {
5 #[must_use]
8 fn debug_inspect_err<F: FnOnce(&E)>(self, f: F) -> Self;
9
10 #[must_use]
13 fn debug_inspect<F: FnOnce(&T)>(self, f: F) -> Self;
14}
15
16#[cfg(debug_assertions)]
17impl<T, E> DebugInspect<T, E> for Result<T, E> {
18 #[inline]
19 fn debug_inspect<F>(self, f: F) -> Self
20 where
21 F: FnOnce(&T),
22 {
23 self.inspect(f)
24 }
25
26 #[inline]
27 fn debug_inspect_err<F>(self, f: F) -> Self
28 where
29 F: FnOnce(&E),
30 {
31 self.inspect_err(f)
32 }
33}
34
35#[cfg(not(debug_assertions))]
36impl<T, E> DebugInspect<T, E> for Result<T, E> {
37 #[inline]
38 fn debug_inspect<F>(self, _: F) -> Self
39 where
40 F: FnOnce(&T),
41 {
42 self
43 }
44
45 #[inline]
46 fn debug_inspect_err<F>(self, _: F) -> Self
47 where
48 F: FnOnce(&E),
49 {
50 self
51 }
52}