@@ -41,26 +41,7 @@ pub enum RecordMapping {
4141 /// Captures multiple items to Sentry.
4242 /// Nesting multiple `RecordMapping::Combined` is not supported and will cause the mappings to
4343 /// be ignored.
44- Combined ( CombinedRecordMapping ) ,
45- }
46-
47- /// A list of record mappings.
48- #[ derive( Debug ) ]
49- pub struct CombinedRecordMapping ( Vec < RecordMapping > ) ;
50-
51- impl From < RecordMapping > for CombinedRecordMapping {
52- fn from ( value : RecordMapping ) -> Self {
53- match value {
54- RecordMapping :: Combined ( combined) => combined,
55- _ => CombinedRecordMapping ( vec ! [ value] ) ,
56- }
57- }
58- }
59-
60- impl From < Vec < RecordMapping > > for CombinedRecordMapping {
61- fn from ( value : Vec < RecordMapping > ) -> Self {
62- Self ( value)
63- }
44+ Combined ( Vec < RecordMapping > ) ,
6445}
6546
6647/// The default log filter.
@@ -163,7 +144,7 @@ impl<L: log::Log> log::Log for SentryLogger<L> {
163144 }
164145
165146 fn log ( & self , record : & log:: Record < ' _ > ) {
166- let items: RecordMapping = match & self . mapper {
147+ let items = match & self . mapper {
167148 Some ( mapper) => mapper ( record) ,
168149 None => {
169150 let filter = ( self . filter ) ( record. metadata ( ) ) ;
@@ -181,13 +162,12 @@ impl<L: log::Log> log::Log for SentryLogger<L> {
181162 if filter. contains ( LogFilter :: Log ) {
182163 items. push ( RecordMapping :: Log ( log_from_record ( record) ) ) ;
183164 }
184- RecordMapping :: Combined ( CombinedRecordMapping ( items) )
165+ RecordMapping :: Combined ( items)
185166 }
186167 } ;
187- let items = CombinedRecordMapping :: from ( items) ;
188168
189- for item in items . 0 {
190- match item {
169+ fn handle_single_mapping ( mapping : RecordMapping ) {
170+ match mapping {
191171 RecordMapping :: Ignore => { }
192172 RecordMapping :: Breadcrumb ( breadcrumb) => sentry_core:: add_breadcrumb ( breadcrumb) ,
193173 RecordMapping :: Event ( event) => {
@@ -199,12 +179,20 @@ impl<L: log::Log> log::Log for SentryLogger<L> {
199179 }
200180 RecordMapping :: Combined ( _) => {
201181 sentry_core:: sentry_debug!(
202- "[SentryLogger] found nested CombinedEventMapping , ignoring"
182+ "[SentryLogger] found nested RecordMapping::Combined , ignoring"
203183 )
204184 }
205185 }
206186 }
207187
188+ if let RecordMapping :: Combined ( items) = items {
189+ for item in items {
190+ handle_single_mapping ( item) ;
191+ }
192+ } else {
193+ handle_single_mapping ( items) ;
194+ }
195+
208196 self . dest . log ( record)
209197 }
210198
0 commit comments