filestruct

Crates.iofilestruct
lib.rsfilestruct
version0.3.0
sourcesrc
created_at2023-04-23 00:17:20.933139
updated_at2023-04-25 23:01:09.12725
descriptionRead a directory into a Rust struct
homepage
repositoryhttps://github.com/cdown/filestruct
max_upload_size
id846251
size7,043
Chris Down (cdown)

documentation

README

filestruct | Tests

A Rust derive macro which permits reading struct values from a directory.

Not ready for production use, still in heavy development and many things are not yet implemented or will unexpectedly blow up.

Usage

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);
}

Results in:

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",
    },
)

Releases

Releases are a little complicated because filestruct_derive and filestruct are separate crates. Use cargo release:

cargo release --execute -- minor
Commit count: 51

cargo fmt