module Hasql.Codecs.Encoders.Value where
import ByteString.StrictBuilder qualified
import Data.Aeson qualified as Aeson
import Data.ByteString.Lazy qualified as LazyByteString
import Data.IP qualified as Iproute
import Hasql.CodecsVocab qualified as CodecsVocab
import Hasql.CodecsVocab.QualifiedTypeName qualified as CodecsVocab.QualifiedTypeName
import Hasql.CodecsVocab.TypeInfo qualified as CodecsVocab.TypeInfo
import Hasql.Platform.Prelude
import Hasql.ToBeResolved qualified as ToBeResolved
import PostgreSQL.Binary.Encoding qualified as Binary
import PostgreSQL.Binary.Range qualified as Range
import TextBuilder qualified as TextBuilder
data Value a
= Value
(Maybe Text)
Text
(Maybe Word32)
(Maybe Word32)
Word
Bool
(ToBeResolved.ToBeResolved CodecsVocab.QualifiedTypeName CodecsVocab.TypeInfo (a -> Binary.Encoding))
(a -> TextBuilder.TextBuilder)
instance Contravariant Value where
{-# INLINE contramap #-}
contramap :: forall a' a. (a' -> a) -> Value a -> Value a'
contramap a' -> a
f (Value Maybe Text
schemaName Text
typeName Maybe Word32
valueOid Maybe Word32
arrayOid Word
dimensionality Bool
textFormat ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
serialize a -> TextBuilder
render) =
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a' -> Encoding)
-> (a' -> TextBuilder)
-> Value a'
forall a.
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
Value Maybe Text
schemaName Text
typeName Maybe Word32
valueOid Maybe Word32
arrayOid Word
dimensionality Bool
textFormat (((a -> Encoding) -> a' -> Encoding)
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> ToBeResolved QualifiedTypeName TypeInfo (a' -> Encoding)
forall a b.
(a -> b)
-> ToBeResolved QualifiedTypeName TypeInfo a
-> ToBeResolved QualifiedTypeName TypeInfo b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\a -> Encoding
encode -> a -> Encoding
encode (a -> Encoding) -> (a' -> a) -> a' -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. a' -> a
f) ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
serialize) (a -> TextBuilder
render (a -> TextBuilder) -> (a' -> a) -> a' -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. a' -> a
f)
{-# INLINE primitive #-}
primitive :: Text -> Bool -> CodecsVocab.TypeInfo -> (a -> Binary.Encoding) -> (a -> TextBuilder.TextBuilder) -> Value a
primitive :: forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
typeName Bool
isText TypeInfo
typeInfo a -> Encoding
encode a -> TextBuilder
render =
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
forall a.
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
Value
Maybe Text
forall a. Maybe a
Nothing
Text
typeName
(Word32 -> Maybe Word32
forall a. a -> Maybe a
Just (TypeInfo -> Word32
CodecsVocab.TypeInfo.toBaseOid TypeInfo
typeInfo))
(Word32 -> Maybe Word32
forall a. a -> Maybe a
Just (TypeInfo -> Word32
CodecsVocab.TypeInfo.toArrayOid TypeInfo
typeInfo))
Word
0
Bool
isText
((a -> Encoding)
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
forall a. a -> ToBeResolved QualifiedTypeName TypeInfo a
forall (f :: * -> *) a. Applicative f => a -> f a
pure a -> Encoding
encode)
a -> TextBuilder
render
{-# INLINEABLE bool #-}
bool :: Value Bool
bool :: Value Bool
bool = Text
-> Bool
-> TypeInfo
-> (Bool -> Encoding)
-> (Bool -> TextBuilder)
-> Value Bool
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"bool" Bool
False TypeInfo
CodecsVocab.TypeInfo.bool Bool -> Encoding
Binary.bool (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Bool -> String) -> Bool -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Bool -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE int2 #-}
int2 :: Value Int16
int2 :: Value Int16
int2 = Text
-> Bool
-> TypeInfo
-> (Int16 -> Encoding)
-> (Int16 -> TextBuilder)
-> Value Int16
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"int2" Bool
False TypeInfo
CodecsVocab.TypeInfo.int2 Int16 -> Encoding
Binary.int2_int16 (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Int16 -> String) -> Int16 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Int16 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE int4 #-}
int4 :: Value Int32
int4 :: Value Int32
int4 = Text
-> Bool
-> TypeInfo
-> (Int32 -> Encoding)
-> (Int32 -> TextBuilder)
-> Value Int32
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"int4" Bool
False TypeInfo
CodecsVocab.TypeInfo.int4 Int32 -> Encoding
Binary.int4_int32 (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Int32 -> String) -> Int32 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Int32 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE int8 #-}
int8 :: Value Int64
int8 :: Value Int64
int8 = Text
-> Bool
-> TypeInfo
-> (Int64 -> Encoding)
-> (Int64 -> TextBuilder)
-> Value Int64
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"int8" Bool
False TypeInfo
CodecsVocab.TypeInfo.int8 Int64 -> Encoding
Binary.int8_int64 (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Int64 -> String) -> Int64 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Int64 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE float4 #-}
float4 :: Value Float
float4 :: Value Float
float4 = Text
-> Bool
-> TypeInfo
-> (Float -> Encoding)
-> (Float -> TextBuilder)
-> Value Float
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"float4" Bool
False TypeInfo
CodecsVocab.TypeInfo.float4 Float -> Encoding
Binary.float4 (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Float -> String) -> Float -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Float -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE float8 #-}
float8 :: Value Double
float8 :: Value Double
float8 = Text
-> Bool
-> TypeInfo
-> (Double -> Encoding)
-> (Double -> TextBuilder)
-> Value Double
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"float8" Bool
False TypeInfo
CodecsVocab.TypeInfo.float8 Double -> Encoding
Binary.float8 (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Double -> String) -> Double -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Double -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE numeric #-}
numeric :: Value Scientific
numeric :: Value Scientific
numeric = Text
-> Bool
-> TypeInfo
-> (Scientific -> Encoding)
-> (Scientific -> TextBuilder)
-> Value Scientific
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"numeric" Bool
False TypeInfo
CodecsVocab.TypeInfo.numeric Scientific -> Encoding
Binary.numeric (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Scientific -> String) -> Scientific -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Scientific -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE char #-}
char :: Value Char
char :: Value Char
char = Text
-> Bool
-> TypeInfo
-> (Char -> Encoding)
-> (Char -> TextBuilder)
-> Value Char
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"char" Bool
False TypeInfo
CodecsVocab.TypeInfo.text Char -> Encoding
Binary.char_utf8 (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Char -> String) -> Char -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Char -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE text #-}
text :: Value Text
text :: Value Text
text = Text
-> Bool
-> TypeInfo
-> (Text -> Encoding)
-> (Text -> TextBuilder)
-> Value Text
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"text" Bool
False TypeInfo
CodecsVocab.TypeInfo.text Text -> Encoding
Binary.text_strict (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Text -> String) -> Text -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE varchar #-}
varchar :: Value Text
varchar :: Value Text
varchar = Text
-> Bool
-> TypeInfo
-> (Text -> Encoding)
-> (Text -> TextBuilder)
-> Value Text
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"varchar" Bool
False TypeInfo
CodecsVocab.TypeInfo.varchar Text -> Encoding
Binary.text_strict (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Text -> String) -> Text -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE bpchar #-}
bpchar :: Value Text
bpchar :: Value Text
bpchar = Text
-> Bool
-> TypeInfo
-> (Text -> Encoding)
-> (Text -> TextBuilder)
-> Value Text
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"bpchar" Bool
False TypeInfo
CodecsVocab.TypeInfo.bpchar Text -> Encoding
Binary.text_strict (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Text -> String) -> Text -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE bytea #-}
bytea :: Value ByteString
bytea :: Value ByteString
bytea = Text
-> Bool
-> TypeInfo
-> (ByteString -> Encoding)
-> (ByteString -> TextBuilder)
-> Value ByteString
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"bytea" Bool
False TypeInfo
CodecsVocab.TypeInfo.bytea ByteString -> Encoding
Binary.bytea_strict (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (ByteString -> String) -> ByteString -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ByteString -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE date #-}
date :: Value Day
date :: Value Day
date = Text
-> Bool
-> TypeInfo
-> (Day -> Encoding)
-> (Day -> TextBuilder)
-> Value Day
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"date" Bool
False TypeInfo
CodecsVocab.TypeInfo.date Day -> Encoding
Binary.date (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Day -> String) -> Day -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Day -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE timestamp #-}
timestamp :: Value LocalTime
timestamp :: Value LocalTime
timestamp = Text
-> Bool
-> TypeInfo
-> (LocalTime -> Encoding)
-> (LocalTime -> TextBuilder)
-> Value LocalTime
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"timestamp" Bool
False TypeInfo
CodecsVocab.TypeInfo.timestamp LocalTime -> Encoding
Binary.timestamp_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (LocalTime -> String) -> LocalTime -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. LocalTime -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE timestamptz #-}
timestamptz :: Value UTCTime
timestamptz :: Value UTCTime
timestamptz = Text
-> Bool
-> TypeInfo
-> (UTCTime -> Encoding)
-> (UTCTime -> TextBuilder)
-> Value UTCTime
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"timestamptz" Bool
False TypeInfo
CodecsVocab.TypeInfo.timestamptz UTCTime -> Encoding
Binary.timestamptz_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (UTCTime -> String) -> UTCTime -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. UTCTime -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE time #-}
time :: Value TimeOfDay
time :: Value TimeOfDay
time = Text
-> Bool
-> TypeInfo
-> (TimeOfDay -> Encoding)
-> (TimeOfDay -> TextBuilder)
-> Value TimeOfDay
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"time" Bool
False TypeInfo
CodecsVocab.TypeInfo.time TimeOfDay -> Encoding
Binary.time_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (TimeOfDay -> String) -> TimeOfDay -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. TimeOfDay -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE timetz #-}
timetz :: Value (TimeOfDay, TimeZone)
timetz :: Value (TimeOfDay, TimeZone)
timetz = Text
-> Bool
-> TypeInfo
-> ((TimeOfDay, TimeZone) -> Encoding)
-> ((TimeOfDay, TimeZone) -> TextBuilder)
-> Value (TimeOfDay, TimeZone)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"timetz" Bool
False TypeInfo
CodecsVocab.TypeInfo.timetz (TimeOfDay, TimeZone) -> Encoding
Binary.timetz_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> ((TimeOfDay, TimeZone) -> String)
-> (TimeOfDay, TimeZone)
-> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (TimeOfDay, TimeZone) -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE interval #-}
interval :: Value DiffTime
interval :: Value DiffTime
interval = Text
-> Bool
-> TypeInfo
-> (DiffTime -> Encoding)
-> (DiffTime -> TextBuilder)
-> Value DiffTime
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"interval" Bool
False TypeInfo
CodecsVocab.TypeInfo.interval DiffTime -> Encoding
Binary.interval_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (DiffTime -> String) -> DiffTime -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. DiffTime -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE uuid #-}
uuid :: Value UUID
uuid :: Value UUID
uuid = Text
-> Bool
-> TypeInfo
-> (UUID -> Encoding)
-> (UUID -> TextBuilder)
-> Value UUID
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"uuid" Bool
False TypeInfo
CodecsVocab.TypeInfo.uuid UUID -> Encoding
Binary.uuid (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (UUID -> String) -> UUID -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. UUID -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE inet #-}
inet :: Value Iproute.IPRange
inet :: Value IPRange
inet = Text
-> Bool
-> TypeInfo
-> (IPRange -> Encoding)
-> (IPRange -> TextBuilder)
-> Value IPRange
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"inet" Bool
False TypeInfo
CodecsVocab.TypeInfo.inet IPRange -> Encoding
Binary.inet (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (IPRange -> String) -> IPRange -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. IPRange -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE macaddr #-}
macaddr :: Value (Word8, Word8, Word8, Word8, Word8, Word8)
macaddr :: Value (Word8, Word8, Word8, Word8, Word8, Word8)
macaddr = Text
-> Bool
-> TypeInfo
-> ((Word8, Word8, Word8, Word8, Word8, Word8) -> Encoding)
-> ((Word8, Word8, Word8, Word8, Word8, Word8) -> TextBuilder)
-> Value (Word8, Word8, Word8, Word8, Word8, Word8)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"macaddr" Bool
False TypeInfo
CodecsVocab.TypeInfo.macaddr (Word8, Word8, Word8, Word8, Word8, Word8) -> Encoding
Binary.macaddr (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> ((Word8, Word8, Word8, Word8, Word8, Word8) -> String)
-> (Word8, Word8, Word8, Word8, Word8, Word8)
-> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. (Word8, Word8, Word8, Word8, Word8, Word8) -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE json #-}
json :: Value Aeson.Value
json :: Value Value
json = Text
-> Bool
-> TypeInfo
-> (Value -> Encoding)
-> (Value -> TextBuilder)
-> Value Value
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"json" Bool
False TypeInfo
CodecsVocab.TypeInfo.json Value -> Encoding
Binary.json_ast (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Value -> String) -> Value -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Value -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE jsonBytes #-}
jsonBytes :: Value ByteString
jsonBytes :: Value ByteString
jsonBytes = Text
-> Bool
-> TypeInfo
-> (ByteString -> Encoding)
-> (ByteString -> TextBuilder)
-> Value ByteString
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"json" Bool
False TypeInfo
CodecsVocab.TypeInfo.json ByteString -> Encoding
Binary.json_bytes (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (ByteString -> String) -> ByteString -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ByteString -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE jsonLazyBytes #-}
jsonLazyBytes :: Value LazyByteString.ByteString
jsonLazyBytes :: Value ByteString
jsonLazyBytes = Text
-> Bool
-> TypeInfo
-> (ByteString -> Encoding)
-> (ByteString -> TextBuilder)
-> Value ByteString
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"json" Bool
False TypeInfo
CodecsVocab.TypeInfo.json ByteString -> Encoding
Binary.json_bytes_lazy (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (ByteString -> String) -> ByteString -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ByteString -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE jsonb #-}
jsonb :: Value Aeson.Value
jsonb :: Value Value
jsonb = Text
-> Bool
-> TypeInfo
-> (Value -> Encoding)
-> (Value -> TextBuilder)
-> Value Value
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"jsonb" Bool
False TypeInfo
CodecsVocab.TypeInfo.jsonb Value -> Encoding
Binary.jsonb_ast (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Value -> String) -> Value -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Value -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE jsonbBytes #-}
jsonbBytes :: Value ByteString
jsonbBytes :: Value ByteString
jsonbBytes = Text
-> Bool
-> TypeInfo
-> (ByteString -> Encoding)
-> (ByteString -> TextBuilder)
-> Value ByteString
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"jsonb" Bool
False TypeInfo
CodecsVocab.TypeInfo.jsonb ByteString -> Encoding
Binary.jsonb_bytes (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (ByteString -> String) -> ByteString -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ByteString -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE jsonbLazyBytes #-}
jsonbLazyBytes :: Value LazyByteString.ByteString
jsonbLazyBytes :: Value ByteString
jsonbLazyBytes = Text
-> Bool
-> TypeInfo
-> (ByteString -> Encoding)
-> (ByteString -> TextBuilder)
-> Value ByteString
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"jsonb" Bool
False TypeInfo
CodecsVocab.TypeInfo.jsonb ByteString -> Encoding
Binary.jsonb_bytes_lazy (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (ByteString -> String) -> ByteString -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ByteString -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE oid #-}
oid :: Value Int32
oid :: Value Int32
oid = Text
-> Bool
-> TypeInfo
-> (Int32 -> Encoding)
-> (Int32 -> TextBuilder)
-> Value Int32
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"oid" Bool
False TypeInfo
CodecsVocab.TypeInfo.oid Int32 -> Encoding
Binary.int4_int32 (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Int32 -> String) -> Int32 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Int32 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE name #-}
name :: Value Text
name :: Value Text
name = Text
-> Bool
-> TypeInfo
-> (Text -> Encoding)
-> (Text -> TextBuilder)
-> Value Text
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"name" Bool
False TypeInfo
CodecsVocab.TypeInfo.name Text -> Encoding
Binary.text_strict (String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Text -> String) -> Text -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE int4range #-}
int4range :: Value (Range.Range Int32)
int4range :: Value (Range Int32)
int4range = Text
-> Bool
-> TypeInfo
-> (Range Int32 -> Encoding)
-> (Range Int32 -> TextBuilder)
-> Value (Range Int32)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"int4range" Bool
False TypeInfo
CodecsVocab.TypeInfo.int4range Range Int32 -> Encoding
Binary.int4range (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Range Int32 -> String) -> Range Int32 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Range Int32 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE int8range #-}
int8range :: Value (Range.Range Int64)
int8range :: Value (Range Int64)
int8range = Text
-> Bool
-> TypeInfo
-> (Range Int64 -> Encoding)
-> (Range Int64 -> TextBuilder)
-> Value (Range Int64)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"int8range" Bool
False TypeInfo
CodecsVocab.TypeInfo.int8range Range Int64 -> Encoding
Binary.int8range (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Range Int64 -> String) -> Range Int64 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Range Int64 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE numrange #-}
numrange :: Value (Range.Range Scientific)
numrange :: Value (Range Scientific)
numrange = Text
-> Bool
-> TypeInfo
-> (Range Scientific -> Encoding)
-> (Range Scientific -> TextBuilder)
-> Value (Range Scientific)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"numrange" Bool
False TypeInfo
CodecsVocab.TypeInfo.numrange Range Scientific -> Encoding
Binary.numrange (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Range Scientific -> String) -> Range Scientific -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Range Scientific -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE tsrange #-}
tsrange :: Value (Range.Range LocalTime)
tsrange :: Value (Range LocalTime)
tsrange = Text
-> Bool
-> TypeInfo
-> (Range LocalTime -> Encoding)
-> (Range LocalTime -> TextBuilder)
-> Value (Range LocalTime)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"tsrange" Bool
False TypeInfo
CodecsVocab.TypeInfo.tsrange Range LocalTime -> Encoding
Binary.tsrange_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Range LocalTime -> String) -> Range LocalTime -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Range LocalTime -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE tstzrange #-}
tstzrange :: Value (Range.Range UTCTime)
tstzrange :: Value (Range UTCTime)
tstzrange = Text
-> Bool
-> TypeInfo
-> (Range UTCTime -> Encoding)
-> (Range UTCTime -> TextBuilder)
-> Value (Range UTCTime)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"tstzrange" Bool
False TypeInfo
CodecsVocab.TypeInfo.tstzrange Range UTCTime -> Encoding
Binary.tstzrange_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Range UTCTime -> String) -> Range UTCTime -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Range UTCTime -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE daterange #-}
daterange :: Value (Range.Range Day)
daterange :: Value (Range Day)
daterange = Text
-> Bool
-> TypeInfo
-> (Range Day -> Encoding)
-> (Range Day -> TextBuilder)
-> Value (Range Day)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"daterange" Bool
False TypeInfo
CodecsVocab.TypeInfo.daterange Range Day -> Encoding
Binary.daterange (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Range Day -> String) -> Range Day -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Range Day -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE int4multirange #-}
int4multirange :: Value (Range.Multirange Int32)
int4multirange :: Value (Multirange Int32)
int4multirange = Text
-> Bool
-> TypeInfo
-> (Multirange Int32 -> Encoding)
-> (Multirange Int32 -> TextBuilder)
-> Value (Multirange Int32)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"int4multirange" Bool
False TypeInfo
CodecsVocab.TypeInfo.int4multirange Multirange Int32 -> Encoding
Binary.int4multirange (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Multirange Int32 -> String) -> Multirange Int32 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Multirange Int32 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE int8multirange #-}
int8multirange :: Value (Range.Multirange Int64)
int8multirange :: Value (Multirange Int64)
int8multirange = Text
-> Bool
-> TypeInfo
-> (Multirange Int64 -> Encoding)
-> (Multirange Int64 -> TextBuilder)
-> Value (Multirange Int64)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"int8multirange" Bool
False TypeInfo
CodecsVocab.TypeInfo.int8multirange Multirange Int64 -> Encoding
Binary.int8multirange (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Multirange Int64 -> String) -> Multirange Int64 -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Multirange Int64 -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE nummultirange #-}
nummultirange :: Value (Range.Multirange Scientific)
nummultirange :: Value (Multirange Scientific)
nummultirange = Text
-> Bool
-> TypeInfo
-> (Multirange Scientific -> Encoding)
-> (Multirange Scientific -> TextBuilder)
-> Value (Multirange Scientific)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"nummultirange" Bool
False TypeInfo
CodecsVocab.TypeInfo.nummultirange Multirange Scientific -> Encoding
Binary.nummultirange (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Multirange Scientific -> String)
-> Multirange Scientific
-> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Multirange Scientific -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE tsmultirange #-}
tsmultirange :: Value (Range.Multirange LocalTime)
tsmultirange :: Value (Multirange LocalTime)
tsmultirange = Text
-> Bool
-> TypeInfo
-> (Multirange LocalTime -> Encoding)
-> (Multirange LocalTime -> TextBuilder)
-> Value (Multirange LocalTime)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"tsmultirange" Bool
False TypeInfo
CodecsVocab.TypeInfo.tsmultirange Multirange LocalTime -> Encoding
Binary.tsmultirange_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Multirange LocalTime -> String)
-> Multirange LocalTime
-> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Multirange LocalTime -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE tstzmultirange #-}
tstzmultirange :: Value (Range.Multirange UTCTime)
tstzmultirange :: Value (Multirange UTCTime)
tstzmultirange = Text
-> Bool
-> TypeInfo
-> (Multirange UTCTime -> Encoding)
-> (Multirange UTCTime -> TextBuilder)
-> Value (Multirange UTCTime)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"tstzmultirange" Bool
False TypeInfo
CodecsVocab.TypeInfo.tstzmultirange Multirange UTCTime -> Encoding
Binary.tstzmultirange_int (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Multirange UTCTime -> String)
-> Multirange UTCTime
-> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Multirange UTCTime -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE datemultirange #-}
datemultirange :: Value (Range.Multirange Day)
datemultirange :: Value (Multirange Day)
datemultirange = Text
-> Bool
-> TypeInfo
-> (Multirange Day -> Encoding)
-> (Multirange Day -> TextBuilder)
-> Value (Multirange Day)
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"datemultirange" Bool
False TypeInfo
CodecsVocab.TypeInfo.datemultirange Multirange Day -> Encoding
Binary.datemultirange (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (Multirange Day -> String) -> Multirange Day -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Multirange Day -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE citext #-}
citext :: Value Text
citext :: Value Text
citext =
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (Text -> Encoding)
-> (Text -> TextBuilder)
-> Value Text
forall a.
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
Value
Maybe Text
forall a. Maybe a
Nothing
Text
"citext"
Maybe Word32
forall a. Maybe a
Nothing
Maybe Word32
forall a. Maybe a
Nothing
Word
0
Bool
False
((Text -> Encoding)
-> ToBeResolved QualifiedTypeName TypeInfo (Text -> Encoding)
forall a. a -> ToBeResolved QualifiedTypeName TypeInfo a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Text -> Encoding
Binary.text_strict)
(String -> TextBuilder
TextBuilder.string (String -> TextBuilder) -> (Text -> String) -> Text -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Text -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE enum #-}
enum ::
Maybe Text ->
Text ->
(a -> Text) ->
Value a
enum :: forall a. Maybe Text -> Text -> (a -> Text) -> Value a
enum Maybe Text
schemaName Text
typeName a -> Text
mapping =
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
forall a.
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
Value
Maybe Text
schemaName
Text
typeName
Maybe Word32
forall a. Maybe a
Nothing
Maybe Word32
forall a. Maybe a
Nothing
Word
0
Bool
False
((TypeInfo -> a -> Encoding)
-> ToBeResolved QualifiedTypeName TypeInfo TypeInfo
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
forall a b.
(a -> b)
-> ToBeResolved QualifiedTypeName TypeInfo a
-> ToBeResolved QualifiedTypeName TypeInfo b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (\TypeInfo
_typeInfo -> Text -> Encoding
Binary.text_strict (Text -> Encoding) -> (a -> Text) -> a -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. a -> Text
mapping) (QualifiedTypeName
-> ToBeResolved QualifiedTypeName TypeInfo TypeInfo
forall k v. k -> ToBeResolved k v v
ToBeResolved.lookup (Maybe Text -> Text -> QualifiedTypeName
CodecsVocab.QualifiedTypeName Maybe Text
schemaName Text
typeName)))
(Text -> TextBuilder
TextBuilder.text (Text -> TextBuilder) -> (a -> Text) -> a -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. a -> Text
mapping)
{-# DEPRECATED unknown "Use 'custom' instead." #-}
{-# INLINEABLE unknown #-}
unknown :: Value ByteString
unknown :: Value ByteString
unknown = Text
-> Bool
-> TypeInfo
-> (ByteString -> Encoding)
-> (ByteString -> TextBuilder)
-> Value ByteString
forall a.
Text
-> Bool
-> TypeInfo
-> (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
primitive Text
"unknown" Bool
True TypeInfo
CodecsVocab.TypeInfo.unknown ByteString -> Encoding
Binary.bytea_strict (String -> TextBuilder
TextBuilder.string (String -> TextBuilder)
-> (ByteString -> String) -> ByteString -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ByteString -> String
forall a. Show a => a -> String
show)
{-# INLINEABLE custom #-}
custom ::
Maybe Text ->
Text ->
Maybe (Word32, Word32) ->
[(Maybe Text, Text)] ->
( ((Maybe Text, Text) -> (Word32, Word32)) ->
a ->
ByteString
) ->
(a -> Text) ->
Value a
custom :: forall a.
Maybe Text
-> Text
-> Maybe (Word32, Word32)
-> [(Maybe Text, Text)]
-> (((Maybe Text, Text) -> (Word32, Word32)) -> a -> ByteString)
-> (a -> Text)
-> Value a
custom Maybe Text
schemaName Text
typeName Maybe (Word32, Word32)
staticOids [(Maybe Text, Text)]
requiredTypes ((Maybe Text, Text) -> (Word32, Word32)) -> a -> ByteString
encode a -> Text
render =
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
forall a.
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
Value
Maybe Text
schemaName
Text
typeName
(((Word32, Word32) -> Word32)
-> Maybe (Word32, Word32) -> Maybe Word32
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Word32, Word32) -> Word32
forall a b. (a, b) -> a
fst Maybe (Word32, Word32)
staticOids)
(((Word32, Word32) -> Word32)
-> Maybe (Word32, Word32) -> Maybe Word32
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Word32, Word32) -> Word32
forall a b. (a, b) -> b
snd Maybe (Word32, Word32)
staticOids)
Word
0
Bool
False
( [QualifiedTypeName]
-> ((QualifiedTypeName -> TypeInfo) -> a -> Encoding)
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
forall k v a. [k] -> ((k -> v) -> a) -> ToBeResolved k v a
ToBeResolved.ToBeResolved
(((Maybe Text, Text) -> QualifiedTypeName)
-> [(Maybe Text, Text)] -> [QualifiedTypeName]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Maybe Text, Text) -> QualifiedTypeName
CodecsVocab.QualifiedTypeName.fromNameTuple [(Maybe Text, Text)]
requiredTypes)
( \QualifiedTypeName -> TypeInfo
resolve ->
ByteString -> Encoding
ByteString.StrictBuilder.bytes
(ByteString -> Encoding) -> (a -> ByteString) -> a -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ((Maybe Text, Text) -> (Word32, Word32)) -> a -> ByteString
encode
( \(Maybe Text, Text)
name ->
let typeInfo :: TypeInfo
typeInfo = QualifiedTypeName -> TypeInfo
resolve ((Maybe Text, Text) -> QualifiedTypeName
CodecsVocab.QualifiedTypeName.fromNameTuple (Maybe Text, Text)
name)
in (TypeInfo -> Word32
CodecsVocab.TypeInfo.toBaseOid TypeInfo
typeInfo, TypeInfo -> Word32
CodecsVocab.TypeInfo.toArrayOid TypeInfo
typeInfo)
)
)
)
(Text -> TextBuilder
TextBuilder.text (Text -> TextBuilder) -> (a -> Text) -> a -> TextBuilder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. a -> Text
render)
{-# INLINEABLE hstore #-}
hstore :: (Foldable foldable) => Value (foldable (Text, Maybe Text))
hstore :: forall (foldable :: * -> *).
Foldable foldable =>
Value (foldable (Text, Maybe Text))
hstore =
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved
QualifiedTypeName
TypeInfo
(foldable (Text, Maybe Text) -> Encoding)
-> (foldable (Text, Maybe Text) -> TextBuilder)
-> Value (foldable (Text, Maybe Text))
forall a.
Maybe Text
-> Text
-> Maybe Word32
-> Maybe Word32
-> Word
-> Bool
-> ToBeResolved QualifiedTypeName TypeInfo (a -> Encoding)
-> (a -> TextBuilder)
-> Value a
Value
Maybe Text
forall a. Maybe a
Nothing
Text
"hstore"
Maybe Word32
forall a. Maybe a
Nothing
Maybe Word32
forall a. Maybe a
Nothing
Word
0
Bool
False
((foldable (Text, Maybe Text) -> Encoding)
-> ToBeResolved
QualifiedTypeName
TypeInfo
(foldable (Text, Maybe Text) -> Encoding)
forall a. a -> ToBeResolved QualifiedTypeName TypeInfo a
forall (f :: * -> *) a. Applicative f => a -> f a
pure foldable (Text, Maybe Text) -> Encoding
forall (foldable :: * -> *).
Foldable foldable =>
foldable (Text, Maybe Text) -> Encoding
Binary.hStore_foldable)
foldable (Text, Maybe Text) -> TextBuilder
forall {t :: * -> *} {a} {a}.
(Foldable t, Show a, Show a) =>
t (a, Maybe a) -> TextBuilder
renderHstore
where
renderHstore :: t (a, Maybe a) -> TextBuilder
renderHstore t (a, Maybe a)
items =
[TextBuilder] -> TextBuilder
forall a. Monoid a => [a] -> a
mconcat
[ Text -> TextBuilder
TextBuilder.text Text
"hstore(",
TextBuilder -> [TextBuilder] -> TextBuilder
forall (f :: * -> *).
Foldable f =>
TextBuilder -> f TextBuilder -> TextBuilder
TextBuilder.intercalate TextBuilder
", " (((a, Maybe a) -> [TextBuilder]) -> t (a, Maybe a) -> [TextBuilder]
forall m a. Monoid m => (a -> m) -> t a -> m
forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
foldMap (\(a, Maybe a)
pair -> [(a, Maybe a) -> TextBuilder
forall {a} {a}. (Show a, Show a) => (a, Maybe a) -> TextBuilder
renderPair (a, Maybe a)
pair]) t (a, Maybe a)
items),
Text -> TextBuilder
TextBuilder.text Text
")"
]
renderPair :: (a, Maybe a) -> TextBuilder
renderPair (a
key, Maybe a
maybeValue) =
[TextBuilder] -> TextBuilder
forall a. Monoid a => [a] -> a
mconcat
[ Text -> TextBuilder
TextBuilder.text Text
"(",
String -> TextBuilder
TextBuilder.string (a -> String
forall a. Show a => a -> String
show a
key),
Text -> TextBuilder
TextBuilder.text Text
", ",
case Maybe a
maybeValue of
Maybe a
Nothing -> Text -> TextBuilder
TextBuilder.text Text
"NULL"
Just a
value -> String -> TextBuilder
TextBuilder.string (a -> String
forall a. Show a => a -> String
show a
value),
Text -> TextBuilder
TextBuilder.text Text
")"
]