module Codec.Archive.Zip.Unix
( toFileMode,
fromFileMode,
)
where
import Data.Bits
import Data.Word
import System.Posix.Types (CMode (..))
toFileMode :: Word32 -> CMode
toFileMode :: Word32 -> CMode
toFileMode Word32
attrs = forall a b. (Integral a, Num b) => a -> b
fromIntegral forall a b. (a -> b) -> a -> b
$ (Word32
attrs forall a. Bits a => a -> Int -> a
`shiftR` Int
16) forall a. Bits a => a -> a -> a
.&. Word32
0x0fff
fromFileMode :: CMode -> Word32
fromFileMode :: CMode -> Word32
fromFileMode CMode
cmode = (Word32
0o100000 forall a. Bits a => a -> a -> a
.|. forall a b. (Integral a, Num b) => a -> b
fromIntegral CMode
cmode) forall a. Bits a => a -> Int -> a
`shiftL` Int
16