5个版本
0.2.3 | 2022年11月7日 |
---|---|
0.2.2 | 2022年9月12日 |
0.2.1 | 2022年9月12日 |
0.2.0 | 2022年9月9日 |
0.0.0 | 2022年7月4日 |
#790 在 异步
每月23次下载
34KB
808 行
async-xml
一个基于 tokio
和 quick-xml
的crate,用于异步反序列化XML数据。包括用于反序列化的derive宏。
示例
use async_xml::from_str;
use async_xml_derive::FromXml;
#[tokio::main]
async fn main() {
let report: Report = from_str(r#"<report id="b"><data>text</data></report>"#)
.await
.unwrap();
println!("deserialized: {:?}", report);
// prints "Report { id: "b", data: Some(ReportData { data: "text" }) }"
}
#[derive(Debug, PartialEq, FromXml)]
#[async_xml(rename = "report")]
pub struct Report {
#[async_xml(attribute)]
pub id: String,
#[async_xml(child)]
pub data: Option<ReportData>,
}
#[derive(Debug, PartialEq, FromXml)]
#[async_xml(rename = "data")]
pub struct ReportData {
#[async_xml(value)]
pub data: String,
}
许可证
许可协议为以下之一
- Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则任何有意提交以包含在分叉中的贡献,根据Apache-2.0许可证定义,将根据上述方式双重许可,不附加任何额外的条款或条件。
依赖项
~9MB
~211K SLoC