8 个版本
0.1.7 | 2022 年 12 月 7 日 |
---|---|
0.1.6 | 2022 年 12 月 7 日 |
#726 在 文件系统
每月 22 次下载
16KB
116 行
Rust 构建时文件系统
RBFS 是一个用于在内存中创建虚拟文件系统的简单接口。一旦填充,可能在您的 build.rs
中,RBFS 会生成 Rust 源代码,并将其链接到您的主 Rust 程序中。在运行时,您可以访问您在 RBFS 代码中放入的任何文件。
---------------- --------------------
| build.rs | --- generates ---> | resources.rs |
---------------- --------------------
Figure 1: Program can now access the files packed into RBFS in the build script by including the
resources.rs file.
例如,在游戏中,您可能想要打包图像数据、配置文件、音频等...时,它非常有用。
用法
将其包含在您的 Cargo.toml
清单中。以下是一个基本示例。
// Create the filesystem.
let fs = FileSystem::new();
// Create a path to a virtual location in the filesystem, representing images..
let mut image_directory = fs.get_base_path();
image_directory.push("assets");
image_directory.push("imgs");
// Refering to an icon.png, which will be included via include_bytes! at preprocess time.
// If you want the file to be loaded as a string, change the true to a false to denote
// it's existing as being a binary file.
let icon = fs.add_file(PathBuf::from("icon.png"), &image_directory, false, true);
// If you want to make RBFS output a different filename than supplied, do the following:
let config = fs.add_file(PathBuf::from("matt.conf"), &PathBuf::from("movie.conf"), true, true);
// Generate the Rust code.
let code = fs.code();
let resources_rs = File::create(concat!(env!("CARGO_MANIFEST_DIR"), "/src/resources.rs")).unwrap();
writeln!(resources_rs, "{}", code).unwrap();
作者
由 Milo Banks 制作 🫀。