From 37442be894ba8c0923e4e0122752c973796fe56c Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Tue, 13 Sep 2022 11:14:05 -0700 Subject: [PATCH] Sealed trait does not need its own module The aserror module is already private to thiserror, with AsDynError being re-exported in thiserror::private, so as long as Sealed is not also re-exported there, it remains inaccessible outside the crate. --- src/aserror.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/aserror.rs b/src/aserror.rs index 640764a..5fea84e 100644 --- a/src/aserror.rs +++ b/src/aserror.rs @@ -1,4 +1,3 @@ -use self::private::Sealed; use std::error::Error; use std::panic::UnwindSafe; @@ -41,13 +40,9 @@ impl<'a> AsDynError<'a> for dyn Error + Send + Sync + UnwindSafe + 'a { } } -mod private { - use super::*; - - pub trait Sealed {} - impl<'a, T: Error + 'a> Sealed for T {} - impl<'a> Sealed for dyn Error + 'a {} - impl<'a> Sealed for dyn Error + Send + 'a {} - impl<'a> Sealed for dyn Error + Send + Sync + 'a {} - impl<'a> Sealed for dyn Error + Send + Sync + UnwindSafe + 'a {} -} +pub trait Sealed {} +impl<'a, T: Error + 'a> Sealed for T {} +impl<'a> Sealed for dyn Error + 'a {} +impl<'a> Sealed for dyn Error + Send + 'a {} +impl<'a> Sealed for dyn Error + Send + Sync + 'a {} +impl<'a> Sealed for dyn Error + Send + Sync + UnwindSafe + 'a {}