bollard 0.21.0

An asynchronous Docker daemon API
Documentation
use bitflags::bitflags;

bitflags! { // source: https://pkg.go.dev/io/fs#FileMode
    pub struct FileMode: u32 {
        const Dir        = 1 << (32 -  1); // d: is a directory
        const Append     = 1 << (32 -  2); // a: append-only
        const Exclusive  = 1 << (32 -  3); // l: exclusive use
        const Temporary  = 1 << (32 -  4); // T: temporary file; Plan 9 only
        const Symlink    = 1 << (32 -  5); // L: symbolic link
        const Device     = 1 << (32 -  6); // D: device file
        const NamedPipe  = 1 << (32 -  7); // p: named pipe (FIFO)
        const Socket     = 1 << (32 -  8); // S: Unix domain socket
        const Setuid     = 1 << (32 -  9); // u: setuid
        const Setgid     = 1 << (32 - 10); // g: setgid
        const CharDevice = 1 << (32 - 11); // c: Unix character device, when ModeDevice is set
        const Sticky     = 1 << (32 - 12); // t: sticky
        const Irregular  = 1 << (32 - 13); // ?: non-regular file; nothing else is known about this file

        // Mask for the type bits. For regular files, none will be set.
        const Type = Self::Dir.bits() | Self::Symlink.bits() | Self::NamedPipe.bits() |
                     Self::Socket.bits() | Self::Device.bits() | Self::CharDevice.bits() |
                     Self::Irregular.bits();

        const Perm = 0o777; // Unix permission bits
    }
}