summaryrefslogtreecommitdiff
path: root/tests/test_error.rs
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2025-11-15 20:18:36 +0000
committerJohn Turner <jturner.usa@gmail.com>2025-11-15 20:18:36 +0000
commit6eba9cd92c295c5389944f6adda1f1e83b2cb008 (patch)
tree1150628bb9ff715ca3e6027637112f1ec3858139 /tests/test_error.rs
downloadgentoo-utils-6eba9cd92c295c5389944f6adda1f1e83b2cb008.tar.gz
Squashed 'subprojects/thiserror/' content from commit 247eab5
git-subtree-dir: subprojects/thiserror git-subtree-split: 247eab5d79e27ad28859afdf8bc600a4242829b7
Diffstat (limited to 'tests/test_error.rs')
-rw-r--r--tests/test_error.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/test_error.rs b/tests/test_error.rs
new file mode 100644
index 0000000..eb52cef
--- /dev/null
+++ b/tests/test_error.rs
@@ -0,0 +1,56 @@
+#![allow(dead_code)]
+
+use core::fmt::{self, Display};
+use std::io;
+use thiserror::Error;
+
+macro_rules! unimplemented_display {
+ ($ty:ty) => {
+ impl Display for $ty {
+ fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result {
+ unimplemented!()
+ }
+ }
+ };
+}
+
+#[derive(Error, Debug)]
+struct BracedError {
+ msg: String,
+ pos: usize,
+}
+
+#[derive(Error, Debug)]
+struct TupleError(String, usize);
+
+#[derive(Error, Debug)]
+struct UnitError;
+
+#[derive(Error, Debug)]
+struct WithSource {
+ #[source]
+ cause: io::Error,
+}
+
+#[derive(Error, Debug)]
+struct WithAnyhow {
+ #[source]
+ cause: anyhow::Error,
+}
+
+#[derive(Error, Debug)]
+enum EnumError {
+ Braced {
+ #[source]
+ cause: io::Error,
+ },
+ Tuple(#[source] io::Error),
+ Unit,
+}
+
+unimplemented_display!(BracedError);
+unimplemented_display!(TupleError);
+unimplemented_display!(UnitError);
+unimplemented_display!(WithSource);
+unimplemented_display!(WithAnyhow);
+unimplemented_display!(EnumError);