diff options
author | Nadrieril | 2020-03-13 20:53:23 +0000 |
---|---|---|
committer | Nadrieril | 2020-03-31 21:44:01 +0100 |
commit | 1a0929b52af57d5963dd9da9e5cf85ffbed3a8f7 (patch) | |
tree | 4bb8d701584f229475c0b4f76db4b77ddaf028cf /serde_dhall/src/error.rs | |
parent | 6a2a407f27b8068769f208383119ac855f629e96 (diff) |
Reorganize serde modules
Diffstat (limited to 'serde_dhall/src/error.rs')
-rw-r--r-- | serde_dhall/src/error.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/serde_dhall/src/error.rs b/serde_dhall/src/error.rs new file mode 100644 index 0000000..91a0b94 --- /dev/null +++ b/serde_dhall/src/error.rs @@ -0,0 +1,30 @@ +use dhall::error::Error as DhallError; + +pub type Result<T> = std::result::Result<T, Error>; + +#[derive(Debug)] +#[non_exhaustive] +pub enum Error { + Dhall(DhallError), + Deserialize(String), +} + +impl std::fmt::Display for Error { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + Error::Dhall(err) => write!(f, "{}", err), + Error::Deserialize(err) => write!(f, "{}", err), + } + } +} + +impl std::error::Error for Error {} + +impl serde::de::Error for Error { + fn custom<T>(msg: T) -> Self + where + T: std::fmt::Display, + { + Error::Deserialize(msg.to_string()) + } +} |