1use alloc::{boxed::Box, vec::Vec};
19
20#[derive(Debug, PartialEq, Eq, Clone)]
22#[cfg_attr(feature = "std", derive(thiserror::Error))]
23pub enum Error<H> {
24 #[cfg_attr(feature = "std", error("Bad format"))]
25 BadFormat,
26 #[cfg_attr(feature = "std", error("Decoding failed: {0}"))]
27 Decode(#[cfg_attr(feature = "std", source)] codec::Error),
28 #[cfg_attr(
29 feature = "std",
30 error("Recorded key ({0:x?}) access with value as found={1}, but could not confirm with trie.")
31 )]
32 InvalidRecording(Vec<u8>, bool),
33 #[cfg_attr(feature = "std", error("Trie error: {0:?}"))]
34 TrieError(Box<trie_db::TrieError<H, Self>>),
35}
36
37impl<H> From<codec::Error> for Error<H> {
38 fn from(x: codec::Error) -> Self {
39 Error::Decode(x)
40 }
41}
42
43impl<H> From<Box<trie_db::TrieError<H, Self>>> for Error<H> {
44 fn from(x: Box<trie_db::TrieError<H, Self>>) -> Self {
45 Error::TrieError(x)
46 }
47}