1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use core::fmt;
pub struct Error(());
impl Error {
#[inline(always)]
pub(crate) const fn new() -> Self {
Error(())
}
}
impl fmt::Debug for Error {
#[inline]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
<str as fmt::Debug>::fmt("HexError", f)
}
}
impl fmt::Display for Error {
#[inline]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
<str as fmt::Display>::fmt("HexError", f)
}
}
#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
#[cfg(feature = "std")]
impl std::error::Error for Error {}
macro_rules! ensure {
($cond:expr) => {
if !$cond {
return Err($crate::error::Error::new());
}
};
}
#[allow(unused_macros)]
macro_rules! try_ {
($result:expr) => {
match $result {
Ok(value) => value,
Err(_) => return Err(Error::new()),
}
};
}