module Orville.PostgreSQL.Internal.FieldName
( FieldName
, stringToFieldName
, fieldNameToString
, fieldNameToColumnName
, fieldNameToByteString
, byteStringToFieldName
) where
import qualified Data.ByteString.Char8 as B8
import qualified Orville.PostgreSQL.Expr as Expr
newtype FieldName
= FieldName B8.ByteString
deriving (FieldName -> FieldName -> Bool
(FieldName -> FieldName -> Bool)
-> (FieldName -> FieldName -> Bool) -> Eq FieldName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FieldName -> FieldName -> Bool
== :: FieldName -> FieldName -> Bool
$c/= :: FieldName -> FieldName -> Bool
/= :: FieldName -> FieldName -> Bool
Eq, Eq FieldName
Eq FieldName
-> (FieldName -> FieldName -> Ordering)
-> (FieldName -> FieldName -> Bool)
-> (FieldName -> FieldName -> Bool)
-> (FieldName -> FieldName -> Bool)
-> (FieldName -> FieldName -> Bool)
-> (FieldName -> FieldName -> FieldName)
-> (FieldName -> FieldName -> FieldName)
-> Ord FieldName
FieldName -> FieldName -> Bool
FieldName -> FieldName -> Ordering
FieldName -> FieldName -> FieldName
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: FieldName -> FieldName -> Ordering
compare :: FieldName -> FieldName -> Ordering
$c< :: FieldName -> FieldName -> Bool
< :: FieldName -> FieldName -> Bool
$c<= :: FieldName -> FieldName -> Bool
<= :: FieldName -> FieldName -> Bool
$c> :: FieldName -> FieldName -> Bool
> :: FieldName -> FieldName -> Bool
$c>= :: FieldName -> FieldName -> Bool
>= :: FieldName -> FieldName -> Bool
$cmax :: FieldName -> FieldName -> FieldName
max :: FieldName -> FieldName -> FieldName
$cmin :: FieldName -> FieldName -> FieldName
min :: FieldName -> FieldName -> FieldName
Ord, Int -> FieldName -> ShowS
[FieldName] -> ShowS
FieldName -> String
(Int -> FieldName -> ShowS)
-> (FieldName -> String)
-> ([FieldName] -> ShowS)
-> Show FieldName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FieldName -> ShowS
showsPrec :: Int -> FieldName -> ShowS
$cshow :: FieldName -> String
show :: FieldName -> String
$cshowList :: [FieldName] -> ShowS
showList :: [FieldName] -> ShowS
Show)
fieldNameToColumnName :: FieldName -> Expr.ColumnName
fieldNameToColumnName :: FieldName -> ColumnName
fieldNameToColumnName (FieldName ByteString
name) =
Identifier -> ColumnName
forall name. IdentifierExpression name => Identifier -> name
Expr.fromIdentifier (ByteString -> Identifier
Expr.identifierFromBytes ByteString
name)
stringToFieldName :: String -> FieldName
stringToFieldName :: String -> FieldName
stringToFieldName =
ByteString -> FieldName
FieldName (ByteString -> FieldName)
-> (String -> ByteString) -> String -> FieldName
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
B8.pack
fieldNameToString :: FieldName -> String
fieldNameToString :: FieldName -> String
fieldNameToString =
ByteString -> String
B8.unpack (ByteString -> String)
-> (FieldName -> ByteString) -> FieldName -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. FieldName -> ByteString
fieldNameToByteString
fieldNameToByteString :: FieldName -> B8.ByteString
fieldNameToByteString :: FieldName -> ByteString
fieldNameToByteString (FieldName ByteString
name) =
ByteString
name
byteStringToFieldName :: B8.ByteString -> FieldName
byteStringToFieldName :: ByteString -> FieldName
byteStringToFieldName = ByteString -> FieldName
FieldName