1
+ //! This module contains the deserialization implementations for the XML value types including visitors.
1
2
use crate :: {
2
3
de:: { self , DeserializeContext , SeqAccess , Visitor } ,
3
4
Deserialize , Deserializer , ExpandedName , Prefix , XmlNamespace ,
@@ -116,20 +117,28 @@ impl<'de> Deserialize<'de> for XmlValue {
116
117
117
118
// Text
118
119
119
- struct XmlTextVisitor < ' v > {
120
+ /// A visitor for deserializing to [`XmlText`].
121
+ pub struct XmlTextVisitor < ' v > {
120
122
marker : PhantomData < XmlText > ,
121
123
lifetime : PhantomData < & ' v ( ) > ,
122
124
}
123
125
124
126
impl XmlTextVisitor < ' _ > {
125
- fn new ( ) -> Self {
127
+ /// Creates a new [`XmlTextVisitor`].
128
+ pub fn new ( ) -> Self {
126
129
Self {
127
130
marker : PhantomData ,
128
131
lifetime : PhantomData ,
129
132
}
130
133
}
131
134
}
132
135
136
+ impl Default for XmlTextVisitor < ' _ > {
137
+ fn default ( ) -> Self {
138
+ Self :: new ( )
139
+ }
140
+ }
141
+
133
142
impl < ' v > crate :: de:: Visitor < ' v > for XmlTextVisitor < ' v > {
134
143
type Value = XmlText ;
135
144
@@ -174,19 +183,27 @@ impl<'de> Deserialize<'de> for XmlText {
174
183
175
184
// CData
176
185
177
- struct XmlCDataVisitor < ' v > {
186
+ /// A visitor for deserializing to [`XmlCData`].
187
+ pub struct XmlCDataVisitor < ' v > {
178
188
marker : PhantomData < XmlCData > ,
179
189
lifetime : PhantomData < & ' v ( ) > ,
180
190
}
181
191
impl XmlCDataVisitor < ' _ > {
182
- fn new ( ) -> Self {
192
+ /// Creates a new [`XmlCDataVisitor`].
193
+ pub fn new ( ) -> Self {
183
194
Self {
184
195
marker : PhantomData ,
185
196
lifetime : PhantomData ,
186
197
}
187
198
}
188
199
}
189
200
201
+ impl Default for XmlCDataVisitor < ' _ > {
202
+ fn default ( ) -> Self {
203
+ Self :: new ( )
204
+ }
205
+ }
206
+
190
207
impl < ' de > Visitor < ' de > for XmlCDataVisitor < ' de > {
191
208
type Value = XmlCData ;
192
209
fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
@@ -212,19 +229,27 @@ impl<'de> Deserialize<'de> for XmlCData {
212
229
213
230
// Child
214
231
215
- struct XmlChildVisitor < ' v > {
232
+ /// A visitor for deserializing to [`XmlChild`].
233
+ pub struct XmlChildVisitor < ' v > {
216
234
marker : PhantomData < XmlChild > ,
217
235
lifetime : PhantomData < & ' v ( ) > ,
218
236
}
219
237
impl XmlChildVisitor < ' _ > {
220
- fn new ( ) -> Self {
238
+ /// Creates a new [`XmlChildVisitor`].
239
+ pub fn new ( ) -> Self {
221
240
Self {
222
241
marker : PhantomData ,
223
242
lifetime : PhantomData ,
224
243
}
225
244
}
226
245
}
227
246
247
+ impl Default for XmlChildVisitor < ' _ > {
248
+ fn default ( ) -> Self {
249
+ Self :: new ( )
250
+ }
251
+ }
252
+
228
253
impl < ' v > crate :: de:: Visitor < ' v > for XmlChildVisitor < ' v > {
229
254
type Value = XmlChild ;
230
255
fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
@@ -290,19 +315,28 @@ impl<'de> de::Deserialize<'de> for XmlChild {
290
315
291
316
// Element
292
317
293
- struct XmlElementVisitor < ' v > {
318
+ /// A visitor for deserializing to [`XmlElement`].
319
+ pub struct XmlElementVisitor < ' v > {
294
320
marker : PhantomData < XmlElement > ,
295
321
lifetime : PhantomData < & ' v ( ) > ,
296
322
}
323
+
297
324
impl XmlElementVisitor < ' _ > {
298
- fn new ( ) -> Self {
325
+ /// Creates a new [`XmlElementVisitor`].
326
+ pub fn new ( ) -> Self {
299
327
Self {
300
328
marker : PhantomData ,
301
329
lifetime : PhantomData ,
302
330
}
303
331
}
304
332
}
305
333
334
+ impl Default for XmlElementVisitor < ' _ > {
335
+ fn default ( ) -> Self {
336
+ Self :: new ( )
337
+ }
338
+ }
339
+
306
340
impl < ' v > crate :: de:: Visitor < ' v > for XmlElementVisitor < ' v > {
307
341
type Value = XmlElement ;
308
342
fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
@@ -350,20 +384,28 @@ impl<'de> crate::de::Deserialize<'de> for XmlElement {
350
384
351
385
// Attribute
352
386
353
- struct XmlAttributeVisitor < ' v > {
387
+ /// A visitor for deserializing to [`XmlAttribute`].
388
+ pub struct XmlAttributeVisitor < ' v > {
354
389
marker : PhantomData < XmlAttribute > ,
355
390
lifetime : PhantomData < & ' v ( ) > ,
356
391
}
357
392
358
393
impl XmlAttributeVisitor < ' _ > {
359
- fn new ( ) -> Self {
394
+ /// Creates a new [`XmlAttributeVisitor`].
395
+ pub fn new ( ) -> Self {
360
396
Self {
361
397
marker : PhantomData ,
362
398
lifetime : PhantomData ,
363
399
}
364
400
}
365
401
}
366
402
403
+ impl Default for XmlAttributeVisitor < ' _ > {
404
+ fn default ( ) -> Self {
405
+ Self :: new ( )
406
+ }
407
+ }
408
+
367
409
impl < ' v > crate :: de:: Visitor < ' v > for XmlAttributeVisitor < ' v > {
368
410
type Value = XmlAttribute ;
369
411
fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
@@ -418,20 +460,28 @@ impl<'de, T: Deserialize<'de>> Deserialize<'de> for XmlSeq<T> {
418
460
419
461
// Processing Instruction
420
462
421
- struct XmlProcessingInstructionVisitor < ' v > {
463
+ /// A visitor for deserializing to [`XmlProcessingInstruction`].
464
+ pub struct XmlProcessingInstructionVisitor < ' v > {
422
465
marker : PhantomData < XmlProcessingInstruction > ,
423
466
lifetime : PhantomData < & ' v ( ) > ,
424
467
}
425
468
426
469
impl XmlProcessingInstructionVisitor < ' _ > {
427
- fn new ( ) -> Self {
470
+ /// Creates a new [`XmlProcessingInstructionVisitor`].
471
+ pub fn new ( ) -> Self {
428
472
Self {
429
473
marker : PhantomData ,
430
474
lifetime : PhantomData ,
431
475
}
432
476
}
433
477
}
434
478
479
+ impl Default for XmlProcessingInstructionVisitor < ' _ > {
480
+ fn default ( ) -> Self {
481
+ Self :: new ( )
482
+ }
483
+ }
484
+
435
485
impl < ' v > crate :: de:: Visitor < ' v > for XmlProcessingInstructionVisitor < ' v > {
436
486
type Value = XmlProcessingInstruction ;
437
487
@@ -462,20 +512,28 @@ impl<'de> Deserialize<'de> for XmlProcessingInstruction {
462
512
463
513
// Xml Decl
464
514
465
- struct XmlDeclVisitor < ' v > {
515
+ /// A visitor for deserializing to [`XmlDeclVisitor`].
516
+ pub struct XmlDeclVisitor < ' v > {
466
517
marker : PhantomData < XmlDecl > ,
467
518
lifetime : PhantomData < & ' v ( ) > ,
468
519
}
469
520
470
521
impl XmlDeclVisitor < ' _ > {
471
- fn new ( ) -> Self {
522
+ /// Creates a new [`XmlDeclVisitor`].
523
+ pub fn new ( ) -> Self {
472
524
Self {
473
525
marker : PhantomData ,
474
526
lifetime : PhantomData ,
475
527
}
476
528
}
477
529
}
478
530
531
+ impl Default for XmlDeclVisitor < ' _ > {
532
+ fn default ( ) -> Self {
533
+ Self :: new ( )
534
+ }
535
+ }
536
+
479
537
impl < ' v > crate :: de:: Visitor < ' v > for XmlDeclVisitor < ' v > {
480
538
type Value = XmlDecl ;
481
539
fn expecting ( & self , formatter : & mut fmt:: Formatter ) -> fmt:: Result {
@@ -510,12 +568,14 @@ impl<'de> Deserialize<'de> for XmlDecl {
510
568
511
569
// Xml Comment
512
570
513
- struct XmlCommentVisitor < ' v > {
571
+ /// A visitor for deserializing to [`XmlComment`].
572
+ pub struct XmlCommentVisitor < ' v > {
514
573
marker : PhantomData < XmlComment > ,
515
574
lifetime : PhantomData < & ' v ( ) > ,
516
575
}
517
576
518
577
impl XmlCommentVisitor < ' _ > {
578
+ /// Creates a new [`XmlCommentVisitor`].
519
579
pub fn new ( ) -> Self {
520
580
Self {
521
581
marker : PhantomData ,
@@ -524,6 +584,12 @@ impl XmlCommentVisitor<'_> {
524
584
}
525
585
}
526
586
587
+ impl Default for XmlCommentVisitor < ' _ > {
588
+ fn default ( ) -> Self {
589
+ Self :: new ( )
590
+ }
591
+ }
592
+
527
593
impl < ' v > crate :: de:: Visitor < ' v > for XmlCommentVisitor < ' v > {
528
594
type Value = XmlComment ;
529
595
@@ -551,12 +617,14 @@ impl<'de> Deserialize<'de> for XmlComment {
551
617
552
618
// Xml Doctype
553
619
554
- struct XmlDoctypeVisitor < ' v > {
620
+ /// A visitor for deserializing to [`XmlDoctype`].
621
+ pub struct XmlDoctypeVisitor < ' v > {
555
622
marker : PhantomData < XmlDoctype > ,
556
623
lifetime : PhantomData < & ' v ( ) > ,
557
624
}
558
625
559
626
impl XmlDoctypeVisitor < ' _ > {
627
+ /// Creates a new [`XmlDoctypeVisitor`].
560
628
pub fn new ( ) -> Self {
561
629
Self {
562
630
marker : PhantomData ,
@@ -565,6 +633,12 @@ impl XmlDoctypeVisitor<'_> {
565
633
}
566
634
}
567
635
636
+ impl Default for XmlDoctypeVisitor < ' _ > {
637
+ fn default ( ) -> Self {
638
+ Self :: new ( )
639
+ }
640
+ }
641
+
568
642
impl < ' v > crate :: de:: Visitor < ' v > for XmlDoctypeVisitor < ' v > {
569
643
type Value = XmlDoctype ;
570
644
0 commit comments