1 个不稳定版本
0.1.0 | 2024 年 8 月 4 日 |
---|
#507 在 文件系统
105 每月下载
23KB
419 行
filestructure-rs
一个库,用于在内存中随意向文件结构添加数据,并在需要时将其写入磁盘。
使用方法
内部的 FileStructure
实际上是一个经典 Unix 风格文件树的链表。首先,我们可以使用 FileStructure::default
实现来构造我们的主空结构(这将为您提供一个没有名称的空目录),或者使用 FileStructure::from_path
,它接受一个 Unix 风格的路径并创建一个模仿它的结构。
let mut fs = FileStructure::from_path("/some/path") // This creates a filestructure with a root node, a subdir of the root called 'some' and a subdir of 'some' called 'path'.
let mut new = fs.insert_dir("/some/other") // We now add a new subdirectory of 'some' called 'other' and return a handle to it.
new.insert_string("hello.txt", String::from("world")) // Create a new file /some/other/hello.txt with the string 'world' in it.
new.insert_blob("data.obj", Box::new([0,0,0,0])) // Create a new binary file /some/other/data.obj with some byte data.
fs.write_to_disk("./") // Write this file structure to disk starting from our CWD.
此外,如果您启用了 tokenstream2
功能标志,您可以使用 insert_tokenstream
将 proc_macro2::TokenStream
添加到结构中。有关如何使用它的文档。
如果您在任何时候失去了对文件系统某个点的句柄,您可以使用 fs.get("/handle/to/find")
来搜索结构并获取匹配节点的引用(或使用 get_mut
获取可变引用)。
依赖项
~225KB