summaryrefslogtreecommitdiffstats
path: root/third_party/rust/thiserror/src/provide.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/thiserror/src/provide.rs')
-rw-r--r--third_party/rust/thiserror/src/provide.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/third_party/rust/thiserror/src/provide.rs b/third_party/rust/thiserror/src/provide.rs
new file mode 100644
index 0000000000..7b4e922389
--- /dev/null
+++ b/third_party/rust/thiserror/src/provide.rs
@@ -0,0 +1,20 @@
+use std::error::{Error, Request};
+
+#[doc(hidden)]
+pub trait ThiserrorProvide: Sealed {
+ fn thiserror_provide<'a>(&'a self, request: &mut Request<'a>);
+}
+
+impl<T> ThiserrorProvide for T
+where
+ T: Error + ?Sized,
+{
+ #[inline]
+ fn thiserror_provide<'a>(&'a self, request: &mut Request<'a>) {
+ self.provide(request);
+ }
+}
+
+#[doc(hidden)]
+pub trait Sealed {}
+impl<T: Error + ?Sized> Sealed for T {}