summaryrefslogtreecommitdiff
path: root/Types/StandardGroups.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2019-01-09 15:00:43 -0400
committerJoey Hess <joeyh@joeyh.name>2019-01-09 15:05:49 -0400
commit6f66b53a30219eea05870bfa86b0c48ccb56145c (patch)
tree5a7b72d2ad076b5badcbe2ed334ab71644266037 /Types/StandardGroups.hs
parent3f7fe1d32598e9feaccbe6745c23fc5a7ce45e2b (diff)
newtype Group to ByteString
This may speed up queries for things in groups, due to Eq and Ord being faster.
Diffstat (limited to 'Types/StandardGroups.hs')
-rw-r--r--Types/StandardGroups.hs42
1 files changed, 22 insertions, 20 deletions
diff --git a/Types/StandardGroups.hs b/Types/StandardGroups.hs
index 2d24024d81..3a6689bd76 100644
--- a/Types/StandardGroups.hs
+++ b/Types/StandardGroups.hs
@@ -5,6 +5,8 @@
- Licensed under the GNU GPL version 3 or higher.
-}
+{-# LANGUAGE OverloadedStrings #-}
+
module Types.StandardGroups where
import Types.Remote (RemoteConfig)
@@ -29,28 +31,28 @@ data StandardGroup
deriving (Eq, Ord, Enum, Bounded, Show)
fromStandardGroup :: StandardGroup -> Group
-fromStandardGroup ClientGroup = "client"
-fromStandardGroup TransferGroup = "transfer"
-fromStandardGroup BackupGroup = "backup"
-fromStandardGroup IncrementalBackupGroup = "incrementalbackup"
-fromStandardGroup SmallArchiveGroup = "smallarchive"
-fromStandardGroup FullArchiveGroup = "archive"
-fromStandardGroup SourceGroup = "source"
-fromStandardGroup ManualGroup = "manual"
-fromStandardGroup PublicGroup = "public"
-fromStandardGroup UnwantedGroup = "unwanted"
+fromStandardGroup ClientGroup = Group "client"
+fromStandardGroup TransferGroup = Group "transfer"
+fromStandardGroup BackupGroup = Group "backup"
+fromStandardGroup IncrementalBackupGroup = Group "incrementalbackup"
+fromStandardGroup SmallArchiveGroup = Group "smallarchive"
+fromStandardGroup FullArchiveGroup = Group "archive"
+fromStandardGroup SourceGroup = Group "source"
+fromStandardGroup ManualGroup = Group "manual"
+fromStandardGroup PublicGroup = Group "public"
+fromStandardGroup UnwantedGroup = Group "unwanted"
toStandardGroup :: Group -> Maybe StandardGroup
-toStandardGroup "client" = Just ClientGroup
-toStandardGroup "transfer" = Just TransferGroup
-toStandardGroup "backup" = Just BackupGroup
-toStandardGroup "incrementalbackup" = Just IncrementalBackupGroup
-toStandardGroup "smallarchive" = Just SmallArchiveGroup
-toStandardGroup "archive" = Just FullArchiveGroup
-toStandardGroup "source" = Just SourceGroup
-toStandardGroup "manual" = Just ManualGroup
-toStandardGroup "public" = Just PublicGroup
-toStandardGroup "unwanted" = Just UnwantedGroup
+toStandardGroup (Group "client") = Just ClientGroup
+toStandardGroup (Group "transfer") = Just TransferGroup
+toStandardGroup (Group "backup") = Just BackupGroup
+toStandardGroup (Group "incrementalbackup") = Just IncrementalBackupGroup
+toStandardGroup (Group "smallarchive") = Just SmallArchiveGroup
+toStandardGroup (Group "archive") = Just FullArchiveGroup
+toStandardGroup (Group "source") = Just SourceGroup
+toStandardGroup (Group "manual") = Just ManualGroup
+toStandardGroup (Group "public") = Just PublicGroup
+toStandardGroup (Group "unwanted") = Just UnwantedGroup
toStandardGroup _ = Nothing
descStandardGroup :: StandardGroup -> String