9 个版本
0.2.6 | 2024年7月1日 |
---|---|
0.2.5 | 2022年4月4日 |
0.2.4 | 2022年3月7日 |
0.1.5 | 2022年3月5日 |
0.0.1 | 2021年11月20日 |
#213 in 文件系统
64 每月下载
82KB
894 行
rivia-vfs
Rivia 虚拟文件系统的高效封装
快速链接
用法
- 导入 crate
[dependencies] rivia-vfs = "0.2.6"
- 使用 crate
use rivia_vfs::prelude::*; fn main() { // Simply remove this line to default to the real filesystem. vfs::set_memfs().unwrap(); let config = load_config(); assert_eq!(config, "this is a test"); println!("VFS test passed"); } // Load an example application configuration file using VFS. // This allows you to test with a memory backed VFS implementation during testing and with // the real filesystem during production. fn load_config() -> String { let dir = PathBuf::from("/etc/xdg"); vfs::mkdir_p(&dir).unwrap(); let filepath = dir.mash("rivia.toml"); vfs::write_all(&filepath, "this is a test").unwrap(); assert_eq!(vfs::config_dir("rivia.toml").unwrap().to_str().unwrap(), "/etc/xdg"); if let Some(config_dir) = vfs::config_dir("rivia.toml") { let path = config_dir.mash("rivia.toml"); return vfs::read_all(&path).unwrap(); } "".into() }
Rustc 要求
这个最低 rustc 要求是由对 Rust 的 std::error::Error
处理改进所驱动的
贡献
欢迎提交拉取请求。然而,请理解它们将纯粹根据它们是否符合我对项目的目标/理想来评估。
项目指南:
- 链式调用 - 确保 Rust 的函数式链式调用风格不会因为添加而受阻
- 简洁性 - 尽可能简洁地命名,同时不损害清晰度
- 清晰度 - 尽可能无歧义地命名,同时不损害简洁性
- 性能 - 保持便利函数尽可能高效,同时指出重大成本
- 速度 - 提供类似于快速开发语言的舒适函数
- 舒适度 - 使用与流行语言相似的方式命名和概念
开发环境
自动版本
启用 git 钩,以便在提交时自动增加版本号
cd ~/Projects/rivia-vfs
git config core.hooksPath .githooks
测试
在容器中测试
待定
许可证
本项目采用以下任一许可证
- MIT 许可证 LICENSE-MIT 或 http://opensource.org/licenses/MIT
- Apache 许可证 2.0 LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0
贡献
除非您明确声明,否则您提交给本项目的任何有意贡献,都将根据上述许可证双重许可,没有额外的条款或条件。
待办事项
变更日志
依赖关系
~3MB
~54K SLoC