Crate filemode

Crate filemode 

Source
Expand description

File mode conversion utilities between Unix mode_t and Go os.FileMode formats.

This crate provides utilities for converting between Unix file mode representations (as used in POSIX systems) and Go’s os.FileMode format (as used in BuildKit and fsutil).

§Examples

§Using type-safe conversion with From trait

use filemode::{UnixMode, GoFileMode};

// Convert Unix directory mode (0o040755) to Go FileMode
let unix_mode = UnixMode::from(0o040755);
let go_mode: GoFileMode = unix_mode.into();
assert_eq!(go_mode.as_u32(), 0x800001ed); // ModeDir | 0o755

// Or use the convenience function
let go_mode = GoFileMode::from(UnixMode::from(0o100644));
assert_eq!(go_mode.as_u32(), 0o644); // Regular file with 0o644 permissions

§Using the legacy function API

use filemode::unix_mode_to_go_filemode;

let go_mode = unix_mode_to_go_filemode(0o040755);
assert_eq!(go_mode, 0x800001ed);

Structs§

GoFileMode
A Go os.FileMode value.
UnixMode
A Unix file mode (mode_t) value.

Functions§

unix_mode_to_go_filemode
Convert Unix mode_t format to Go os.FileMode format.