2
2
3
3
use std:: io:: Write ;
4
4
5
- #[ cfg( feature = "serialize" ) ]
6
- use serde:: Serialize ;
7
-
8
5
use crate :: encoding:: UTF8_BOM ;
9
6
use crate :: errors:: Result ;
10
7
use crate :: events:: { attributes:: Attribute , BytesCData , BytesStart , BytesText , Event } ;
@@ -13,6 +10,10 @@ use crate::events::{attributes::Attribute, BytesCData, BytesStart, BytesText, Ev
13
10
mod async_tokio;
14
11
15
12
/// XML writer. Writes XML [`Event`]s to a [`std::io::Write`] or [`tokio::io::AsyncWrite`] implementor.
13
+ #[ cfg( feature = "serialize" ) ]
14
+ use { crate :: de:: DeError , serde:: Serialize } ;
15
+
16
+ /// XML writer. Writes XML [`Event`]s to a [`std::io::Write`] implementor.
16
17
///
17
18
/// # Examples
18
19
///
@@ -346,7 +347,10 @@ impl<'a, W: Write> ElementWriter<'a, W> {
346
347
347
348
/// Serialize an arbitrary value inside the current element
348
349
#[ cfg( feature = "serialize" ) ]
349
- pub fn write_serializable_content < T : Serialize > ( self , content : T ) -> Result < & ' a mut Writer < W > > {
350
+ pub fn write_serializable_content < T : Serialize > (
351
+ self ,
352
+ content : T ,
353
+ ) -> std:: result:: Result < & ' a mut Writer < W > , DeError > {
350
354
use crate :: se:: Serializer ;
351
355
352
356
self . writer
@@ -364,9 +368,7 @@ impl<'a, W: Write> ElementWriter<'a, W> {
364
368
) ;
365
369
}
366
370
367
- if let Err ( error) = content. serialize ( serializer) {
368
- return Err ( Error :: NonSerializable ( error. to_string ( ) ) ) ;
369
- }
371
+ content. serialize ( serializer) ?;
370
372
371
373
self . writer
372
374
. write_event ( Event :: End ( self . start_tag . to_end ( ) ) ) ?;
0 commit comments