Skip to content

Commit 1fc27ff

Browse files
committed
Add valuable capture to __tracing_capture_value!
1 parent 9830f1f commit 1fc27ff

File tree

2 files changed

+42
-28
lines changed

2 files changed

+42
-28
lines changed

tracing/src/lib.rs

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -964,8 +964,7 @@ pub use self::span::Span;
964964
pub use tracing_attributes::instrument;
965965

966966
#[macro_use]
967-
#[doc(hidden)]
968-
pub mod macros;
967+
mod macros;
969968

970969
pub mod collect;
971970
pub mod dispatch;
@@ -1110,6 +1109,45 @@ pub mod __macro_support {
11101109
.finish()
11111110
}
11121111
}
1112+
1113+
pub mod __tracing_capture_value_by {
1114+
// autoref specialization level 0
1115+
#[cfg(all(tracing_unstable, feature = "valuable"))]
1116+
pub trait TracingCaptureValueByValuable {
1117+
fn __tracing_capture_value(&self) -> &dyn crate::field::Value;
1118+
}
1119+
1120+
#[cfg(all(tracing_unstable, feature = "valuable"))]
1121+
impl<T: valuable::Valuable> TracingCaptureValueByValuable for T {
1122+
fn __tracing_capture_value(&self) -> valuable::Value<'_> {
1123+
crate::field::valuable(self)
1124+
}
1125+
}
1126+
1127+
// autoref specialization level 1
1128+
#[cfg(not(all(tracing_unstable, feature = "valuable")))]
1129+
pub trait TracingCaptureValueByValue {
1130+
fn __tracing_capture_value(&self) -> &dyn crate::field::Value;
1131+
}
1132+
1133+
#[cfg(not(all(tracing_unstable, feature = "valuable")))]
1134+
impl<T: crate::field::Value> TracingCaptureValueByValue for &T {
1135+
fn __tracing_capture_value(&self) -> &dyn crate::field::Value {
1136+
self
1137+
}
1138+
}
1139+
1140+
// autoref specialization level 2
1141+
pub trait TracingCaptureValueByDebug {
1142+
fn __tracing_capture_value(&self) -> &dyn crate::field::Value;
1143+
}
1144+
1145+
impl<T: core::fmt::Debug> TracingCaptureValueByDebug for &&T {
1146+
fn __tracing_capture_value(&self) -> &dyn crate::field::Value {
1147+
crate::field::debug_ref(self)
1148+
}
1149+
}
1150+
}
11131151
}
11141152

11151153
mod sealed {

tracing/src/macros.rs

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2134,37 +2134,13 @@ macro_rules! fieldset {
21342134

21352135
}
21362136

2137-
// autoref specialization level 0
2138-
#[doc(hidden)]
2139-
pub trait TracingCaptureValueByValue {
2140-
fn __tracing_capture_value(&self) -> &dyn crate::field::Value;
2141-
}
2142-
2143-
impl<T: crate::field::Value> TracingCaptureValueByValue for T {
2144-
fn __tracing_capture_value(&self) -> &dyn crate::field::Value {
2145-
self
2146-
}
2147-
}
2148-
2149-
// autoref specialization level 1
2150-
#[doc(hidden)]
2151-
pub trait TracingCaptureValueByDebug {
2152-
fn __tracing_capture_value(&self) -> &dyn crate::field::Value;
2153-
}
2154-
2155-
impl<T: core::fmt::Debug> TracingCaptureValueByDebug for &T {
2156-
fn __tracing_capture_value(&self) -> &dyn crate::field::Value {
2157-
crate::field::debug_ref(self)
2158-
}
2159-
}
2160-
21612137
#[doc(hidden)]
21622138
#[macro_export]
21632139
macro_rules! __tracing_capture_value {
21642140
($e:expr) => {{
21652141
#[allow(unused_imports)]
2166-
use $crate::macros::{TracingCaptureValueByDebug, TracingCaptureValueByValue};
2167-
(&$e).__tracing_capture_value()
2142+
use $crate::__macro_support::__tracing_capture_value_by::*;
2143+
(&&$e).__tracing_capture_value()
21682144
}};
21692145
}
21702146

0 commit comments

Comments
 (0)