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§
- GoFile
Mode - A Go os.FileMode value.
- Unix
Mode - A Unix file mode (mode_t) value.
Functions§
- unix_
mode_ to_ go_ filemode - Convert Unix mode_t format to Go os.FileMode format.