bcp47-orphans-0.1.1.0: library/Data/BCP47/Persist.hs
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.BCP47.Persist () where
import Control.Monad ((<=<))
import Data.BCP47 (BCP47, fromText, toText)
import Data.Proxy (Proxy (..))
import Data.Text (Text)
import Database.Persist.Class (PersistField (..))
import Database.Persist.Sql (PersistFieldSql (..))
instance PersistField BCP47 where
toPersistValue = toPersistValue . toText
fromPersistValue = fromText <=< fromPersistValue
instance PersistFieldSql BCP47 where
-- sqlType for Text should be SqlString, but we don't hardcode in the
-- unlikely case that changes
sqlType _ = sqlType @Text Proxy