From ea5a0995de70081b412f01c58df80e3766dfcdce Mon Sep 17 00:00:00 2001 From: Jack Wrenn Date: Fri, 10 Jun 2022 14:33:54 -0400 Subject: [PATCH] tracing-core: impl Collect for Box, Arc These broader impls supersede the previous impls where the inner type was a `dyn Collect`. With these generic impls, you no longer must (but still can, if you wish) cast the inner type of a boxed or arc'd collector to `dyn Collect` to use it as a `Collect`. --- tracing-core/src/collect.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tracing-core/src/collect.rs b/tracing-core/src/collect.rs index 869259ca90..cb983610b8 100644 --- a/tracing-core/src/collect.rs +++ b/tracing-core/src/collect.rs @@ -606,7 +606,10 @@ impl Collect for NoCollector { } #[cfg(feature = "alloc")] -impl Collect for alloc::boxed::Box { +impl Collect for alloc::boxed::Box +where + C: Collect + ?Sized, +{ #[inline] fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest { self.as_ref().register_callsite(metadata) @@ -677,7 +680,10 @@ impl Collect for alloc::boxed::Box { } #[cfg(feature = "alloc")] -impl Collect for alloc::sync::Arc { +impl Collect for alloc::sync::Arc +where + C: Collect + ?Sized, +{ #[inline] fn register_callsite(&self, metadata: &'static Metadata<'static>) -> Interest { self.as_ref().register_callsite(metadata)