diff --git a/Data/Slug.hs b/Data/Slug.hs index d517cfa..12c301a 100644 --- a/Data/Slug.hs +++ b/Data/Slug.hs @@ -17,11 +17,14 @@ import qualified System.Random.MWC as MWC import GHC.Prim (RealWorld) import Text.Blaze (ToMarkup) -newtype Slug = Slug { unSlug :: Text } +newtype Slug = Slug Text deriving (Show, Read, Eq, Typeable, PersistField, ToMarkup, Ord, Hashable) instance PersistFieldSql Slug where sqlType = sqlType . liftM unSlug +unSlug :: Slug -> Text +unSlug (Slug t) = t + mkSlug :: MonadThrow m => Text -> m Slug mkSlug t | length t < minLen = throwM $ InvalidSlugException t "Too short"