1use crate::extractor;
4use quick_xml::de::from_reader;
5use quick_xml::se::to_writer;
6use quick_xml::{DeError, SeError};
7use serde::de::DeserializeOwned;
8use serde::Serialize;
9
10fn from_slice<T: DeserializeOwned>(s: &[u8]) -> Result<T, DeError> {
11 from_reader(s)
12}
13
14fn to_vec<T: Serialize>(value: &T) -> Result<Vec<u8>, SeError> {
15 let mut buffer = bytes::BytesMut::with_capacity(128);
16 to_writer(&mut buffer, value)?;
17 Ok(buffer.to_vec())
18}
19
20extractor!(
21 XML,
22 Xml,
23 "application/xml",
24 from_slice,
25 DeError,
26 to_vec,
27 xml_test
28);