gltf-codec-0.1.0.1: src/Codec/GlTF/Prelude.hs
{-# LANGUAGE PartialTypeSignatures #-}
{-# OPTIONS_GHC -Wno-partial-type-signatures #-}
module Codec.GlTF.Prelude
( Size
, FromJSON(..)
, ToJSON(..)
, Generic
, gParseJSON
, gToJSON
, HashMap
, Object
, Scientific
, Text
, Value
, Vector
, withText
, withObject
, (.:)
, (.:?)
, (.!=)
) where
import Data.Aeson (FromJSON(..), ToJSON(..), Value, Object, withText, withObject, (.:), (.:?), (.!=))
import Data.Aeson.Types (Parser, Options(..), defaultOptions, genericParseJSON, genericToJSON)
import Data.List (dropWhileEnd)
import Data.Scientific (Scientific)
import Data.Text (Text)
import Data.Vector (Vector)
import Data.HashMap.Strict (HashMap)
import GHC.Generics (Generic)
type Size = Int
gParseJSON :: _ => Value -> Parser a
gParseJSON = genericParseJSON dropEndTick
gToJSON :: _ => a -> Value
gToJSON = genericToJSON dropEndTick
dropEndTick :: Options
dropEndTick = defaultOptions
{ fieldLabelModifier = dropWhileEnd (== '\'')
}