use error_chain::{ error_chain, error_chain_processing, impl_error_chain_processed, impl_error_chain_kind, impl_extract_backtrace }; error_chain! { foreign_links { Io(::std::io::Error); } errors { Message(t: String) { description(t) display("internal error: '{}'", t) } } } impl serde::ser::Error for Error { fn custom(msg: T) -> Self { ErrorKind::Message(msg.to_string()).into() } }