diff --git a/Data/Slug.hs b/Data/Slug.hs index 3c034c5..0d1b517 100644 --- a/Data/Slug.hs +++ b/Data/Slug.hs @@ -10,14 +10,16 @@ module Data.Slug ) where import ClassyPrelude.Yesod -import Database.Persist.Sql (PersistFieldSql) +import Database.Persist.Sql (PersistFieldSql (sqlType)) import qualified System.Random.MWC as MWC import Control.Monad.Reader (MonadReader, ask) import GHC.Prim (RealWorld) import Text.Blaze (ToMarkup) newtype Slug = Slug { unSlug :: Text } - deriving (Show, Read, Eq, Typeable, PersistField, PersistFieldSql, ToMarkup) + deriving (Show, Read, Eq, Typeable, PersistField, ToMarkup) +instance PersistFieldSql Slug where + sqlType = sqlType . liftM unSlug mkSlug :: MonadThrow m => Text -> m Slug mkSlug t diff --git a/Types.hs b/Types.hs index 94bc1a2..37ee3c9 100644 --- a/Types.hs +++ b/Types.hs @@ -3,17 +3,25 @@ module Types where import ClassyPrelude.Yesod import Data.BlobStore (ToPath (..)) import Text.Blaze (ToMarkup) -import Database.Persist.Sql (PersistFieldSql) +import Database.Persist.Sql (PersistFieldSql (sqlType)) import qualified Data.Text as T newtype PackageName = PackageName { unPackageName :: Text } - deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField, PersistFieldSql, IsString) + deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField, IsString) +instance PersistFieldSql PackageName where + sqlType = sqlType . liftM unPackageName newtype Version = Version { unVersion :: Text } - deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField, PersistFieldSql) + deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField) +instance PersistFieldSql Version where + sqlType = sqlType . liftM unVersion newtype PackageSetIdent = PackageSetIdent { unPackageSetIdent :: Text } - deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField, PersistFieldSql) + deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField) +instance PersistFieldSql PackageSetIdent where + sqlType = sqlType . liftM unPackageSetIdent newtype HackageView = HackageView { unHackageView :: Text } - deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField, PersistFieldSql, IsString) + deriving (Show, Read, Typeable, Eq, Ord, Hashable, PathPiece, ToMarkup, PersistField, IsString) +instance PersistFieldSql HackageView where + sqlType = sqlType . liftM unHackageView data PackageNameVersion = PackageNameVersion !PackageName !Version deriving (Show, Read, Typeable, Eq, Ord)