umask 0.1.4

utility to deal with unix access mode
Documentation

MIT Latest Version docs Chat on Miaou

umask

An utility to build and display unix access permission modes

Import

In Cargo.toml:

umask = "0.1"

Usage

    use umask::*;

    // You can build from a number:
    assert_eq!("rw-r--r--", Mode::from(0b110100100).to_string());
    assert_eq!("rw-r--r--", Mode::from(0o644).to_string());

    // You may use `|` to combine class permissions:
    let mu = Mode::from(0o600);
    let mo = Mode::from(0o004);
    let muo = mu | mo;
    assert_eq!("rw----r--", muo.to_string());

    // You can build with semantic constructs:
    let m = Mode::all()
        .without(ALL_EXEC);
    assert_eq!("rw-rw-rw-", m.to_string());
    let mut m = Mode::new()
        .with_class_perm(ALL, READ)
        .with_class_perm(USER, WRITE);
    assert_eq!("rw-r--r--", m.to_string());

    // Or if you like
    m |= ALL_EXEC;
    assert_eq!("rwxr-xr-x", m.to_string());
    let m = ALL_READ | USER_WRITE;
    assert_eq!("rw-r--r--", m.to_string());