-- | A DSL for constructing literal values

module Hydra.Dsl.Literals where

import Hydra.Core

import Data.Int


bigfloat :: Double -> Literal
bigfloat :: Double -> Literal
bigfloat = FloatValue -> Literal
float (FloatValue -> Literal)
-> (Double -> FloatValue) -> Double -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Double -> FloatValue
FloatValueBigfloat

bigint :: Integer -> Literal
bigint :: Integer -> Literal
bigint = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Integer -> IntegerValue) -> Integer -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> IntegerValue
IntegerValueBigint (Integer -> IntegerValue)
-> (Integer -> Integer) -> Integer -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> Integer
forall a b. (Integral a, Num b) => a -> b
fromIntegral

binary :: String -> Literal
binary :: String -> Literal
binary = String -> Literal
LiteralBinary

boolean :: Bool -> Literal
boolean :: Bool -> Literal
boolean = Bool -> Literal
LiteralBoolean

float32 :: Float -> Literal
float32 :: Float -> Literal
float32 = FloatValue -> Literal
float (FloatValue -> Literal)
-> (Float -> FloatValue) -> Float -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Float -> FloatValue
FloatValueFloat32

float64 :: Double -> Literal
float64 :: Double -> Literal
float64 = FloatValue -> Literal
float (FloatValue -> Literal)
-> (Double -> FloatValue) -> Double -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Double -> FloatValue
FloatValueFloat64

float :: FloatValue -> Literal
float :: FloatValue -> Literal
float = FloatValue -> Literal
LiteralFloat

int16 :: Int16 -> Literal
int16 :: Int16 -> Literal
int16 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Int16 -> IntegerValue) -> Int16 -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int16 -> IntegerValue
IntegerValueInt16 (Int16 -> IntegerValue)
-> (Int16 -> Int16) -> Int16 -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int16 -> Int16
forall a b. (Integral a, Num b) => a -> b
fromIntegral

int32 :: Int -> Literal
int32 :: Int -> Literal
int32 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Int -> IntegerValue) -> Int -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> IntegerValue
IntegerValueInt32

int64 :: Int64 -> Literal
int64 :: Int64 -> Literal
int64 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Int64 -> IntegerValue) -> Int64 -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> IntegerValue
IntegerValueInt64 (Int64 -> IntegerValue)
-> (Int64 -> Int64) -> Int64 -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral

int8 :: Int8 -> Literal
int8 :: Int8 -> Literal
int8 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Int8 -> IntegerValue) -> Int8 -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int8 -> IntegerValue
IntegerValueInt8 (Int8 -> IntegerValue) -> (Int8 -> Int8) -> Int8 -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int8 -> Int8
forall a b. (Integral a, Num b) => a -> b
fromIntegral

integer :: IntegerValue -> Literal
integer :: IntegerValue -> Literal
integer = IntegerValue -> Literal
LiteralInteger

string :: String -> Literal
string :: String -> Literal
string = String -> Literal
LiteralString

uint16 :: Int -> Literal
uint16 :: Int -> Literal
uint16 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Int -> IntegerValue) -> Int -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> IntegerValue
IntegerValueUint16 (Int -> IntegerValue) -> (Int -> Int) -> Int -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral

uint32 :: Int64 -> Literal
uint32 :: Int64 -> Literal
uint32 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Int64 -> IntegerValue) -> Int64 -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> IntegerValue
IntegerValueUint32 (Int64 -> IntegerValue)
-> (Int64 -> Int64) -> Int64 -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral

uint64 :: Integer -> Literal
uint64 :: Integer -> Literal
uint64 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Integer -> IntegerValue) -> Integer -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> IntegerValue
IntegerValueUint64 (Integer -> IntegerValue)
-> (Integer -> Integer) -> Integer -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Integer -> Integer
forall a b. (Integral a, Num b) => a -> b
fromIntegral

uint8 :: Int16 -> Literal
uint8 :: Int16 -> Literal
uint8 = IntegerValue -> Literal
integer (IntegerValue -> Literal)
-> (Int16 -> IntegerValue) -> Int16 -> Literal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int16 -> IntegerValue
IntegerValueUint8 (Int16 -> IntegerValue)
-> (Int16 -> Int16) -> Int16 -> IntegerValue
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int16 -> Int16
forall a b. (Integral a, Num b) => a -> b
fromIntegral