3 个版本
0.1.2 | 2021 年 8 月 9 日 |
---|---|
0.1.1 | 2021 年 7 月 12 日 |
0.1.0 | 2021 年 7 月 11 日 |
#1144 在 编码
23KB
347 代码行
包含 (Zip 文件, 2KB) tests/files/example.basic
kaitai
这个包仍然是一个非常正在进行中的项目;它的功能集非常有限。
将凯泰结构编译成 Rust 的宏。
示例
给定以下文件 basic_be.ksy
meta:
id: basic
endian: be
seq:
- id: header
type: u2
- id: body
type: s8
- id: tail
type: u4
读取 basic_be
缓冲区的 Rust 代码可能看起来像这样
#[kaitai_source("../tests/formats/basic_be.ksy")]
struct BasicBigEndian;
fn main() -> Result<()> {
let file = BasicBigEndian::from_file("tests/files/example.basic")?;
println!("head: {}", file.body);
println!("body: {}", file.body);
println!("tail: {}", file.body);
}
语义
提供给 kaitai_source
的文件路径相对于当前文件,类似于模块查找的方式。然而,提供给 from_file
的文件路径相对于项目的根目录,类似于 std::fs::File::open
。
许可证
许可协议为以下之一
- Apache 许可证,版本 2.0,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您有意提交并包含在作品中的任何贡献,根据 Apache-2.0 许可证的定义,应按上述方式双重许可,不附加任何额外条款或条件。
依赖项
~0.6–1MB
~25K SLoC