enumset 0.0.5 → 0.1
raw patch · 8 files changed
+20/−90 lines, 8 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.EnumSet.PackedEnum: Cons :: w -> Int -> T w a b
- Data.EnumSet.PackedEnum: clear :: (Bits w, Enum a, Enum b) => T w a b -> T w a -> T w a
- Data.EnumSet.PackedEnum: data T w a b
- Data.EnumSet.PackedEnum: pack :: (Num w, Bits w, Enum a, Enum b) => T w a b -> b -> T w a
- Data.EnumSet.PackedEnum: put :: (Num w, Bits w, Enum a, Enum b) => T w a b -> b -> T w a -> T w a
- Data.EnumSet.PackedEnum: unpack :: (Integral w, Bits w, Enum a, Enum b) => T w a b -> T w a -> b
Files
- enumset.cabal +3/−5
- src/Data/EnumBitSet.hs +1/−1
- src/Data/EnumBitSet/Utility.hs +14/−0
- src/Data/EnumSet.hs +0/−10
- src/Data/EnumSet/PackedEnum.hs +0/−58
- src/Data/EnumSet/Utility.hs +0/−14
- src/Data/FlagSet.hs +1/−1
- src/Data/FlagSet/PackedRecord.hs +1/−1
enumset.cabal view
@@ -1,5 +1,5 @@ Name: enumset-Version: 0.0.5+Version: 0.1 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>@@ -25,7 +25,7 @@ Build-Type: Simple Source-Repository this- Tag: 0.0.5+ Tag: 0.1 Type: darcs Location: http://code.haskell.org/~thielema/enumset/ @@ -45,9 +45,7 @@ Hs-Source-Dirs: src Exposed-Modules: Data.EnumBitSet- Data.EnumSet- Data.EnumSet.PackedEnum Data.FlagSet Data.FlagSet.PackedRecord Other-Modules:- Data.EnumSet.Utility+ Data.EnumBitSet.Utility
src/Data/EnumBitSet.hs view
@@ -33,7 +33,7 @@ fromBool, ) where -import qualified Data.EnumSet.Utility as U+import qualified Data.EnumBitSet.Utility as U import qualified Data.Bits as B import Data.Bits (Bits, )
+ src/Data/EnumBitSet/Utility.hs view
@@ -0,0 +1,14 @@+module Data.EnumBitSet.Utility where++import qualified Data.Bits as B+import Data.Bits (Bits, bit, xor, (.&.), )+++-- fixity like .&.+infixl 7 .-.++(.-.) :: (Bits w) => w -> w -> w+x .-. y = x .&. B.complement y++empty :: (Bits w) => w+empty = xor (bit 0) (bit 0)
− src/Data/EnumSet.hs
@@ -1,10 +0,0 @@-{- |-The module name clashes with a module from the package @enummapset@.-Thus we will remove this module in favor of "Data.EnumBitSet".--}-module Data.EnumSet- {-# DEPRECATED "use Data.EnumBitSet instead" #-}- (module Data.EnumBitSet)- where--import Data.EnumBitSet
− src/Data/EnumSet/PackedEnum.hs
@@ -1,58 +0,0 @@-{- |-Extract and inject an Enum value into an EnumSet.--}-module Data.EnumSet.PackedEnum- {-# DEPRECATED "use Data.FlagSet instead" #-}- (T(Cons), unpack, pack, clear, put, )- where--import qualified Data.EnumBitSet as ES--import qualified Data.Bits as B-import Data.Bits (Bits, (.&.), )---{- |-@ T w a b@ describes a contiguous set of bit indices into the word type @w@-where the indices are of type @a@ and the set of indices represent a value of type @b@.--}-data T w a b = Cons w Int--{- |-Extract an enumeration value from the specified index set.--}-unpack ::- (Integral w, Bits w, Enum a, Enum b) =>- T w a b -> ES.T w a -> b-unpack (Cons mask pos) =- toEnum . fromIntegral . (mask .&.) .- flip B.shiftR pos . ES.decons--{- |-Create an enumeration set, where an value of type @b@-is placed at the specified indices.--}-pack ::- (Num w, Bits w, Enum a, Enum b) =>- T w a b -> b -> ES.T w a-pack (Cons mask pos) =- ES.Cons . flip B.shiftL pos .- (mask .&.) . fromIntegral . fromEnum--{- |-Clear all bits at the specified indices.--}-clear ::- (Bits w, Enum a, Enum b) =>- T w a b -> ES.T w a -> ES.T w a-clear (Cons mask pos) =- ES.Cons . (B.complement (B.shiftL mask pos) .&.) . ES.decons--{- |-Overwrite an enumset at the specified indices with the value of type @b@.--}-put ::- (Num w, Bits w, Enum a, Enum b) =>- T w a b -> b -> ES.T w a -> ES.T w a-put set x =- (pack set x ES..|.) . clear set
− src/Data/EnumSet/Utility.hs
@@ -1,14 +0,0 @@-module Data.EnumSet.Utility where--import qualified Data.Bits as B-import Data.Bits (Bits, bit, xor, (.&.), )----- fixity like .&.-infixl 7 .-.--(.-.) :: (Bits w) => w -> w -> w-x .-. y = x .&. B.complement y--empty :: (Bits w) => w-empty = xor (bit 0) (bit 0)
src/Data/FlagSet.hs view
@@ -22,7 +22,7 @@ import qualified Data.Accessor.Basic as Acc -import Data.EnumSet.Utility (empty, (.-.), )+import Data.EnumBitSet.Utility (empty, (.-.), ) import qualified Prelude as P import Prelude hiding (Enum, fromEnum, toEnum, null, flip, )
src/Data/FlagSet/PackedRecord.hs view
@@ -10,7 +10,7 @@ import qualified Data.Accessor.Basic as Acc -import Data.EnumSet.Utility ((.-.), )+import Data.EnumBitSet.Utility ((.-.), ) leastSigBit :: (Num w, Bits w) => w -> w