@@ -110,39 +110,22 @@ where
110110 ' outer: for trace in traces {
111111 for span in trace. as_ref ( ) {
112112 if env. is_none ( ) {
113- env = span
114- . meta
115- . iter ( )
116- . find ( |( k, _) | k. borrow ( ) == "env" )
117- . map ( |( _, v) | v. borrow ( ) ) ;
113+ env = span. meta . get ( "env" ) . map ( |v| v. borrow ( ) ) ;
118114 }
119115 if hostname. is_none ( ) {
120- hostname = span
121- . meta
122- . iter ( )
123- . find ( |( k, _) | k. borrow ( ) == "_dd.hostname" )
124- . map ( |( _, v) | v. borrow ( ) ) ;
116+ hostname = span. meta . get ( "_dd.hostname" ) . map ( |v| v. borrow ( ) ) ;
125117 }
126118 if app_version. is_none ( ) {
127- app_version = span
128- . meta
129- . iter ( )
130- . find ( |( k, _) | k. borrow ( ) == "version" )
131- . map ( |( _, v) | v. borrow ( ) ) ;
119+ app_version = span. meta . get ( "version" ) . map ( |v| v. borrow ( ) ) ;
132120 }
133121 if apm_mode. is_none ( ) {
134- apm_mode = span
135- . meta
136- . iter ( )
137- . find ( |( k, _) | k. borrow ( ) == "_dd.apm_mode" )
138- . map ( |( _, v) | v. borrow ( ) ) ;
122+ apm_mode = span. meta . get ( "_dd.apm_mode" ) . map ( |v| v. borrow ( ) ) ;
139123 }
140124 if git_commit_sha. is_none ( ) {
141125 git_commit_sha = span
142126 . meta
143- . iter ( )
144- . find ( |( k, _) | k. borrow ( ) == "_dd.git.commit.sha" )
145- . map ( |( _, v) | v. borrow ( ) ) ;
127+ . get ( "_dd.git.commit.sha" )
128+ . map ( |v| v. borrow ( ) ) ;
146129 }
147130 if env. is_some ( )
148131 && hostname. is_some ( )
@@ -187,9 +170,8 @@ where
187170 . map ( |s| {
188171 let high = s
189172 . meta
190- . iter ( )
191- . find ( |( k, _) | k. borrow ( ) == "_dd.p.tid" )
192- . and_then ( |( _, v) | u64:: from_str_radix ( v. borrow ( ) , 16 ) . ok ( ) )
173+ . get ( "_dd.p.tid" )
174+ . and_then ( |v| u64:: from_str_radix ( v. borrow ( ) , 16 ) . ok ( ) )
193175 . unwrap_or ( 0 ) ;
194176 ( ( high as u128 ) << 64 ) | s. trace_id
195177 } )
@@ -202,60 +184,36 @@ where
202184 for span in spans {
203185 // Root span: either no parent in this chunk, or tagged _dd.top_level=1 (remote parent).
204186 let is_root = span. parent_id == 0
205- || span
206- . metrics
207- . iter ( )
208- . find ( |( k, _) | k. borrow ( ) == "_dd.top_level" )
209- . map ( |( _, v) | * v)
210- . unwrap_or ( 0.0 )
211- == 1.0 ;
187+ || span. metrics . get ( "_dd.top_level" ) . copied ( ) . unwrap_or ( 0.0 ) == 1.0 ;
212188
213189 if is_root {
214190 // Root span is authoritative: its values supersede any non-root fallback,
215191 // including absence (a field missing on the root should not be filled from non-roots).
216- sampling_priority = span
217- . metrics
218- . iter ( )
219- . find ( |( k, _) | k. borrow ( ) == "_sampling_priority_v1" )
220- . map ( |( _, v) | * v as i32 ) ;
221- origin = span
222- . meta
223- . iter ( )
224- . find ( |( k, _) | k. borrow ( ) == "_dd.origin" )
225- . map ( |( _, v) | v. borrow ( ) ) ;
192+ sampling_priority = span. metrics . get ( "_sampling_priority_v1" ) . map ( |v| * v as i32 ) ;
193+ origin = span. meta . get ( "_dd.origin" ) . map ( |v| v. borrow ( ) ) ;
226194 // _dd.p.dm is a signed integer stored as a string; unsigned_abs preserves the
227195 // magnitude.
228196 sampling_mechanism = span
229197 . meta
230- . iter ( )
231- . find ( |( k, _) | k. borrow ( ) == "_dd.p.dm" )
232- . and_then ( |( _, v) | v. borrow ( ) . parse :: < i32 > ( ) . ok ( ) )
198+ . get ( "_dd.p.dm" )
199+ . and_then ( |v| v. borrow ( ) . parse :: < i32 > ( ) . ok ( ) )
233200 . map ( |dm| dm. unsigned_abs ( ) ) ;
234201 break ;
235202 }
236203
237204 // No root found yet — accumulate fallback values from non-root spans (partial flush).
238205 // Root span values will override these if a root is eventually encountered.
239206 if sampling_priority. is_none ( ) {
240- sampling_priority = span
241- . metrics
242- . iter ( )
243- . find ( |( k, _) | k. borrow ( ) == "_sampling_priority_v1" )
244- . map ( |( _, v) | * v as i32 ) ;
207+ sampling_priority = span. metrics . get ( "_sampling_priority_v1" ) . map ( |v| * v as i32 ) ;
245208 }
246209 if origin. is_none ( ) {
247- origin = span
248- . meta
249- . iter ( )
250- . find ( |( k, _) | k. borrow ( ) == "_dd.origin" )
251- . map ( |( _, v) | v. borrow ( ) ) ;
210+ origin = span. meta . get ( "_dd.origin" ) . map ( |v| v. borrow ( ) ) ;
252211 }
253212 if sampling_mechanism. is_none ( ) {
254213 sampling_mechanism = span
255214 . meta
256- . iter ( )
257- . find ( |( k, _) | k. borrow ( ) == "_dd.p.dm" )
258- . and_then ( |( _, v) | v. borrow ( ) . parse :: < i32 > ( ) . ok ( ) )
215+ . get ( "_dd.p.dm" )
216+ . and_then ( |v| v. borrow ( ) . parse :: < i32 > ( ) . ok ( ) )
259217 . map ( |dm| dm. unsigned_abs ( ) ) ;
260218 }
261219 }
0 commit comments