halfs-2.0: Halfs/Protection.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Halfs.Protection(
UserID (..)
, GroupID(..)
, rootUser
, rootGroup
)
where
import Data.Serialize
import Data.Word
newtype UserID = UID Word64
deriving (Show, Eq, Real, Enum, Integral, Num, Ord)
instance Serialize UserID where
put (UID x) = putWord64be x
get = UID `fmap` getWord64be
rootUser :: UserID
rootUser = UID 0
--
newtype GroupID = GID Word64
deriving (Show, Eq, Real, Enum, Integral, Num, Ord)
instance Serialize GroupID where
put (GID x) = putWord64be x
get = GID `fmap` getWord64be
rootGroup :: GroupID
rootGroup = GID 0