#mysql #macro-derive #xml-format #derive #macro #parser

mysqldump-quick-xml-derive

一个宏,用于将mysqldump的xml格式转换为使用quick-xml的struct

4个版本

0.1.3 2019年3月25日
0.1.2 2019年3月23日
0.1.1 2019年3月23日
0.1.0 2019年3月23日

#33 in #xml-format


mysqldump-quick-xml中使用

Unlicense OR MIT

9KB
121

mysqldump-quick-xml-derive - 一个宏,用于将mysqldump的xml格式转换为使用quick-xml的struct

双许可MIT或UNLICENSE

功能

  1. 解析xml格式的mysqldump。

用法

Cargo.toml中添加依赖

[dependencies]
mysqldump-quick-xml = "0.1"

use mysqldump_quick_xml::MysqlDumpQuickXml;

#[derive(Debug, PartialEq, MysqlDumpQuickXml)]
struct Row {
    id: String,
    code: String,
}

fn main() {
    let xml = r##"
<?xml version="1.0"?>
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="db">
<table_data name="table1">
    <row>
        <field name="id">1</field>
        <field name="code">sample 1</field>
    </row>
    <row>
        <field name="id">2</field>
        <field name="code">sample 2</field>
    </row>
</table_data>
</database>
</mysqldump>
        "##;

    let rows = Row::from_str(xml);

    assert_eq!(
        rows,
        vec![
            Row {
                id: "1".into(),
                code: "sample 1".into()
            },
            Row {
                id: "2".into(),
                code: "sample 2".into()
            }
        ]
    )
}

依赖

~2MB
~46K SLoC