#derive #struct #directory #read #macro

filestruct

将目录读取到 Rust 结构体中

2 个不稳定版本

0.3.0 2023年4月25日
0.2.0 2023年4月23日

文件系统 中排名 #1306

每月下载量 21

MIT 许可证

5KB

filestruct | 测试

一个允许从目录中读取结构体值的 Rust derive 宏。

尚未准备好用于生产使用,仍在积极开发中,许多功能尚未实现或可能意外崩溃。

用法

use filestruct::FromDir;

#[derive(FromDir, Debug)]
struct Files {
    comm: String,
    #[filestruct(file = "comm", trim = true)]
    comm_trimmed: String,
    oom_score: u32,
    does_not_exist: Option<u32>,
    #[filestruct(file = "oom_score_adj")]
    does_not_exist_but_renamed: Option<u32>,
    #[filestruct(relative_dir = "..", trim = true)]
    uptime: String,
}

fn main() {
    let files = Files::from_dir("/proc/self");
    println!("{:#?}", files);
}

结果

Ok(
    Files {
        comm: "pdm-bin\n",
        comm_trimmed: "pdm-bin",
        oom_score: 800,
        does_not_exist: None,
        does_not_exist_but_renamed: Some(
            200,
        ),
        uptime: "177405.74 822813.82",
    },
)

版本

版本发布有些复杂,因为 filestruct_derive 和 filestruct 是独立的 crates。使用 cargo release

cargo release --execute -- minor

依赖

~300–770KB
~18K SLoC