#world-of-warcraft #wow #parser #load-file #error #file-format #dbd

wowdbdefs-rs

用于解析WoWDBDefs/.dbd文件的库

1个不稳定版本

0.1.0 2022年11月30日

#2630解析器实现

MIT/Apache

49KB
1K SLoC

wowdbdefs-rs

用于解析WoWDBDefs/.dbd文件的Rust库。

使用方法

将以下内容添加到您的Cargo.toml

[description]
wowdbdefs-rs = "0.1"

然后阅读文档

MSRV

wowdbdefs-rs的最小支持Rust版本(MSRV)为1.58.1。在wowdbdefs-rs达到1.0.0之前,MSRV可以在PATCH版本中增加。

许可证

根据您的选择,许可协议可以是

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的,任何有意提交给作品并由您包含的贡献,将根据上述方式双许可,不附加任何额外条款或条件。


lib.rs:

WoWDBDefs-rs

用于从WoWDBDefs仓库中读取.dbd格式的Crate。

示例

// From &str
// Ensure that the .dbd name is correct
let file = load_file_from_string(contents, "Map.dbd")?.into_proper()?;

// Or from a path
// `load_file` has two levels of error, one is io::Error the other is ParseError
let file = load_file(path)??.into_proper()?;

// Then either use the parsed types with into_proper which is a more ergonomic API
for definition in &file.definitions {
    for entry in &definition.entries {
        println!("{}", entry.name);
        println!("{:#?}", entry.ty);
    }
}

// Or the raw types which are a direct representation of the format
let file = load_file(path)??;

for definition in &file.definitions {
    for entry in &definition.entries {
        println!("{}", entry.name);
        let column = file.columns.get(&entry.name).ok_or("unable to find column")?;
        println!("{:#?}", column.ty);
    }
}

使用方法

将以下内容添加到您的Cargo.toml

[dependencies]
wowdbdefs-rs = "0.1.0"

MSRV

此Crate的MSRV为1.58.1

无运行时依赖