diff options
Diffstat (limited to 'vendor/thiserror/tests/test_transparent.rs')
-rw-r--r-- | vendor/thiserror/tests/test_transparent.rs | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/vendor/thiserror/tests/test_transparent.rs b/vendor/thiserror/tests/test_transparent.rs deleted file mode 100644 index 6f3c03e..0000000 --- a/vendor/thiserror/tests/test_transparent.rs +++ /dev/null @@ -1,78 +0,0 @@ -use anyhow::anyhow; -use std::error::Error as _; -use std::io; -use thiserror::Error; - -#[test] -fn test_transparent_struct() { - #[derive(Error, Debug)] - #[error(transparent)] - struct Error(ErrorKind); - - #[derive(Error, Debug)] - enum ErrorKind { - #[error("E0")] - E0, - #[error("E1")] - E1(#[from] io::Error), - } - - let error = Error(ErrorKind::E0); - assert_eq!("E0", error.to_string()); - assert!(error.source().is_none()); - - let io = io::Error::new(io::ErrorKind::Other, "oh no!"); - let error = Error(ErrorKind::from(io)); - assert_eq!("E1", error.to_string()); - error.source().unwrap().downcast_ref::<io::Error>().unwrap(); -} - -#[test] -fn test_transparent_enum() { - #[derive(Error, Debug)] - enum Error { - #[error("this failed")] - This, - #[error(transparent)] - Other(anyhow::Error), - } - - let error = Error::This; - assert_eq!("this failed", error.to_string()); - - let error = Error::Other(anyhow!("inner").context("outer")); - assert_eq!("outer", error.to_string()); - assert_eq!("inner", error.source().unwrap().to_string()); -} - -#[test] -fn test_anyhow() { - #[derive(Error, Debug)] - #[error(transparent)] - struct Any(#[from] anyhow::Error); - - let error = Any::from(anyhow!("inner").context("outer")); - assert_eq!("outer", error.to_string()); - assert_eq!("inner", error.source().unwrap().to_string()); -} - -#[test] -fn test_non_static() { - #[derive(Error, Debug)] - #[error(transparent)] - struct Error<'a> { - inner: ErrorKind<'a>, - } - - #[derive(Error, Debug)] - enum ErrorKind<'a> { - #[error("unexpected token: {:?}", token)] - Unexpected { token: &'a str }, - } - - let error = Error { - inner: ErrorKind::Unexpected { token: "error" }, - }; - assert_eq!("unexpected token: \"error\"", error.to_string()); - assert!(error.source().is_none()); -} |