{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Orville.PostgreSQL.Expr.Internal.Name.Identifier
( Identifier
, identifier
, identifierFromBytes
, IdentifierExpression (toIdentifier, fromIdentifier)
)
where
import qualified Data.ByteString.Char8 as B8
import qualified Orville.PostgreSQL.Raw.RawSql as RawSql
newtype Identifier
= Identifier RawSql.RawSql
deriving
(
RawSql -> Identifier
Identifier -> RawSql
(Identifier -> RawSql)
-> (RawSql -> Identifier) -> SqlExpression Identifier
forall a. (a -> RawSql) -> (RawSql -> a) -> SqlExpression a
$ctoRawSql :: Identifier -> RawSql
toRawSql :: Identifier -> RawSql
$cunsafeFromRawSql :: RawSql -> Identifier
unsafeFromRawSql :: RawSql -> Identifier
RawSql.SqlExpression
)
identifier :: String -> Identifier
identifier :: String -> Identifier
identifier =
ByteString -> Identifier
identifierFromBytes (ByteString -> Identifier)
-> (String -> ByteString) -> String -> Identifier
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
B8.pack
identifierFromBytes :: B8.ByteString -> Identifier
identifierFromBytes :: ByteString -> Identifier
identifierFromBytes =
RawSql -> Identifier
Identifier (RawSql -> Identifier)
-> (ByteString -> RawSql) -> ByteString -> Identifier
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> RawSql
RawSql.identifier
class IdentifierExpression name where
toIdentifier :: name -> Identifier
fromIdentifier :: Identifier -> name
instance IdentifierExpression Identifier where
toIdentifier :: Identifier -> Identifier
toIdentifier = Identifier -> Identifier
forall a. a -> a
id
fromIdentifier :: Identifier -> Identifier
fromIdentifier = Identifier -> Identifier
forall a. a -> a
id