Struct quick_xml::se::Serializer [−][src]
pub struct Serializer<'r, W: Write> { /* fields omitted */ }Expand description
A Serializer
Implementations
Creates a new Serializer that uses struct name as a root tag name.
Note, that attempt to serialize a non-struct (including unit structs
and newtype structs) will end up to an error. Use with_root to create
serializer with explicitly defined root element name
Creates a new Serializer that uses specified root tag name
Examples
When serializing a primitive type, only its representation will be written:
use quick_xml::Writer;
let mut buffer = Vec::new();
let mut writer = Writer::new_with_indent(&mut buffer, b' ', 2);
let mut ser = Serializer::with_root(writer, Some("root"));
"node".serialize(&mut ser).unwrap();
assert_eq!(String::from_utf8(buffer).unwrap(), "node");When serializing a struct, newtype struct, unit struct or tuple root_tag
is used as tag name of root(s) element(s):
use quick_xml::Writer;
use quick_xml::se::Serializer;
#[derive(Debug, PartialEq, Serialize)]
struct Struct {
question: String,
answer: u32,
}
let mut buffer = Vec::new();
let mut writer = Writer::new_with_indent(&mut buffer, b' ', 2);
let mut ser = Serializer::with_root(writer, Some("root"));
Struct {
question: "The Ultimate Question of Life, the Universe, and Everything".into(),
answer: 42,
}.serialize(&mut ser).unwrap();
assert_eq!(
String::from_utf8(buffer.clone()).unwrap(),
r#"<root question="The Ultimate Question of Life, the Universe, and Everything" answer="42"/>"#
);Trait Implementations
The output type produced by this Serializer during successful
serialization. Most serializers that produce text or binary output
should set Ok = () and serialize into an io::Write or buffer
contained within the Serializer instance. Serializers that build
in-memory data structures may be simplified by using Ok to propagate
the data structure around. Read more
type SerializeSeq = Seq<'r, 'w, W>
type SerializeSeq = Seq<'r, 'w, W>
Type returned from serialize_seq for serializing the content of the
sequence. Read more
type SerializeTuple = Tuple<'r, 'w, W>
type SerializeTuple = Tuple<'r, 'w, W>
Type returned from serialize_tuple for serializing the content of
the tuple. Read more
type SerializeTupleStruct = Tuple<'r, 'w, W>
type SerializeTupleStruct = Tuple<'r, 'w, W>
Type returned from serialize_tuple_struct for serializing the
content of the tuple struct. Read more
type SerializeTupleVariant = Tuple<'r, 'w, W>
type SerializeTupleVariant = Tuple<'r, 'w, W>
Type returned from serialize_tuple_variant for serializing the
content of the tuple variant. Read more
type SerializeMap = Map<'r, 'w, W>
type SerializeMap = Map<'r, 'w, W>
Type returned from serialize_map for serializing the content of the
map. Read more
type SerializeStruct = Struct<'r, 'w, W>
type SerializeStruct = Struct<'r, 'w, W>
Type returned from serialize_struct for serializing the content of
the struct. Read more
type SerializeStructVariant = Struct<'r, 'w, W>
type SerializeStructVariant = Struct<'r, 'w, W>
Type returned from serialize_struct_variant for serializing the
content of the struct variant. Read more
Serialize an i128 value. Read more
Serialize a chunk of raw byte data. Read more
Serialize a unit struct like struct Unit or PhantomData<T>. Read more
Serialize a unit variant like E::A in enum E { A, B }. Read more
Serialize a newtype struct like struct Millimeters(u8). Read more
Serialize a newtype variant like E::N in enum E { N(u8) }. Read more
Begin to serialize a variably sized sequence. This call must be
followed by zero or more calls to serialize_element, then a call to
end. Read more
Begin to serialize a statically sized sequence whose length will be
known at deserialization time without looking at the serialized data.
This call must be followed by zero or more calls to serialize_element,
then a call to end. Read more
fn serialize_tuple_struct(
self,
name: &'static str,
_len: usize
) -> Result<Self::SerializeTupleStruct, DeError>
fn serialize_tuple_struct(
self,
name: &'static str,
_len: usize
) -> Result<Self::SerializeTupleStruct, DeError>
Begin to serialize a tuple struct like struct Rgb(u8, u8, u8). This
call must be followed by zero or more calls to serialize_field, then a
call to end. Read more
fn serialize_tuple_variant(
self,
_name: &'static str,
_variant_index: u32,
variant: &'static str,
_len: usize
) -> Result<Self::SerializeTupleVariant, DeError>
fn serialize_tuple_variant(
self,
_name: &'static str,
_variant_index: u32,
variant: &'static str,
_len: usize
) -> Result<Self::SerializeTupleVariant, DeError>
Begin to serialize a tuple variant like E::T in enum E { T(u8, u8) }. This call must be followed by zero or more calls to
serialize_field, then a call to end. Read more
Begin to serialize a map. This call must be followed by zero or more
calls to serialize_key and serialize_value, then a call to end. Read more
fn serialize_struct(
self,
name: &'static str,
_len: usize
) -> Result<Self::SerializeStruct, DeError>
fn serialize_struct(
self,
name: &'static str,
_len: usize
) -> Result<Self::SerializeStruct, DeError>
Begin to serialize a struct like struct Rgb { r: u8, g: u8, b: u8 }.
This call must be followed by zero or more calls to serialize_field,
then a call to end. Read more
fn serialize_struct_variant(
self,
_name: &'static str,
_variant_index: u32,
variant: &'static str,
_len: usize
) -> Result<Self::SerializeStructVariant, DeError>
fn serialize_struct_variant(
self,
_name: &'static str,
_variant_index: u32,
variant: &'static str,
_len: usize
) -> Result<Self::SerializeStructVariant, DeError>
Begin to serialize a struct variant like E::S in enum E { S { r: u8, g: u8, b: u8 } }. This call must be followed by zero or more calls to
serialize_field, then a call to end. Read more
fn collect_seq<I>(self, iter: I) -> Result<Self::Ok, Self::Error> where
I: IntoIterator,
<I as IntoIterator>::Item: Serialize,
fn collect_seq<I>(self, iter: I) -> Result<Self::Ok, Self::Error> where
I: IntoIterator,
<I as IntoIterator>::Item: Serialize,
Collect an iterator as a sequence. Read more
fn collect_map<K, V, I>(self, iter: I) -> Result<Self::Ok, Self::Error> where
V: Serialize,
K: Serialize,
I: IntoIterator<Item = (K, V)>,
fn collect_map<K, V, I>(self, iter: I) -> Result<Self::Ok, Self::Error> where
V: Serialize,
K: Serialize,
I: IntoIterator<Item = (K, V)>,
Collect an iterator as a map. Read more
Serialize a string produced by an implementation of Display. Read more
Determine whether Serialize implementations should serialize in
human-readable form. Read more