jsonlogic-0.1.0.0: src/JsonLogic/Operation.hs
{-# LANGUAGE NoImplicitPrelude #-}
-- |
-- Module : JsonLogic.Operation
-- Description : Internal JsonLogic operations
-- Copyright : (c) Marien Matser, Gerard van Schie, Jelle Teeuwissen, 2022
-- License : MIT
-- Maintainer : jelleteeuwissen@hotmail.nl
-- Stability : experimental
-- Prevent Ormolu from putting everything on a separate line.
{- ORMOLU_DISABLE -}
module JsonLogic.Operation
( defaultOperations,
arrayOperations, map, reduce, filter, all, none, some, merge, in',
booleanOperations, if', (==), (===), (!=), (!==), (!), (!!), and, or,
dataOperations, var, missing, missingSome, preserve,
miscOperations, trace,
numericOperations, (>), (>=), (<), (<=), max, min, sum, (+), (-), (*), (/), (%),
stringOperations, cat, substr,
evaluateDouble, evaluateInt, evaluateBool, evaluateArray, evaluateObject, evaluateString
)
where
{- ORMOLU_ENABLE -}
import Control.Monad
import qualified Data.Map as M
import JsonLogic.Operation.Array
import JsonLogic.Operation.Boolean
import JsonLogic.Operation.Data
import JsonLogic.Operation.Misc
import JsonLogic.Operation.Numeric
import JsonLogic.Operation.Primitive
import JsonLogic.Operation.String
import JsonLogic.Type
-- Default operators
defaultOperations :: Monad m => Operations m
defaultOperations = M.unions [arrayOperations, booleanOperations, dataOperations, miscOperations, numericOperations, stringOperations]