Skip to main content

rustical_dav/xml/
error.rs

1use rustical_xml::{XmlRootTag, XmlSerialize};
2
3#[derive(XmlSerialize, XmlRootTag)]
4#[xml(ns = "crate::namespace::NS_DAV", root = "error")]
5#[xml(ns_prefix(crate::namespace::NS_DAV = "",))]
6pub struct ErrorElement<'t, T: XmlSerialize>(#[xml(ty = "untagged")] pub &'t T);
7
8#[cfg(test)]
9mod tests {
10    use super::ErrorElement;
11    use rustical_xml::{XmlSerialize, XmlSerializeRoot};
12
13    #[derive(XmlSerialize, Default)]
14    enum Error {
15        #[default]
16        UnfortunateError,
17    }
18
19    #[test]
20    fn test_serialize_resourcetype() {
21        let out = ErrorElement(&Error::UnfortunateError)
22            .serialize_to_string()
23            .unwrap();
24        assert_eq!(
25            out,
26            r#"<?xml version="1.0" encoding="utf-8"?>
27<error xmlns="DAV:">
28    <unfortunate-error/>
29</error>"#
30        );
31    }
32}