2个版本

0.0.2 2020年10月28日
0.0.1 2020年5月20日

#60 in #I/O写入


用于 ninres-cli

MIT/Apache

21KB
416

Ninres-rs

Continuous integration blog.rust-lang.org

读取常用的任天堂文件格式。

请参阅Wiki:https://github.com/Kinnay/Nintendo-File-Formats/wiki

所有文件格式都位于功能标志之后。以下是可用的任天堂文件格式功能列表

bfres, sarc

您还可以启用其他功能

tar_ninres: 将任天堂资源写入tar文件。

zstd: ZSTD 解压缩。

此crate的所有功能都可以编译为WebAssembly。

示例

Cargo.toml中启用所需的功能。

[dependencies]
ninres = { version = "*", features = ["bfres", "sarc", "zstd"] }

在您的main.rs中。

use std::fs::read;
use ninres::{NinRes, NinResFile};

let buffer = read("foo.pack")?;
let ninres = buffer.as_ninres()?;

match &ninres {
    NinResFile::Bfres(_bfres) => {}
    NinResFile::Sarc(_sarc) => {}
}

写入tar

将资源转换为tar缓冲区。此缓冲区可以存储在文件中,例如。

mode参数指的是tar文件中的文件模式。

示例

use ninres::{sarc::Sarc, IntoTar};
use std::{fs::{read, File}, io::Write};

let sarc_file = Sarc::new(&read("./assets/M1_Model.pack")?)?;
let tar = sarc_file.into_tar(0o644)?;

let mut file = File::create("M1_Model.tar")?;
file.write_all(&tar.into_inner()[..])?;

依赖关系

~0.3–9MB
~93K SLoC