rattletrap 11.2.10 → 11.2.11
raw patch · 3 files changed
+12/−20 lines, 3 filesdep ~aeson
Dependency ranges changed: aeson
Files
rattletrap.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2 name: rattletrap-version: 11.2.10+version: 11.2.11 synopsis: Parse and generate Rocket League replays. description: Rattletrap parses and generates Rocket League replays. @@ -53,7 +53,7 @@ autogen-modules: Paths_rattletrap build-depends:- , aeson ^>= 2.0.3+ , aeson ^>= 2.0.3 || ^>= 2.1.0 , aeson-pretty ^>= 0.8.9 , array ^>= 0.5.4 , bytestring ^>= 0.11.3.1
src/lib/Rattletrap/Schema.hs view
@@ -15,10 +15,12 @@ ref :: Schema -> Json.Value ref s = Json.object [Json.pair "$ref" $ Text.pack "#/definitions/" <> name s] -object :: [((String, Json.Value), Bool)] -> Json.Value+object :: [((Json.Key, Json.Value), Bool)] -> Json.Value object xs = Json.object [ Json.pair "type" "object"- , Json.pair "properties" . Json.object $ fmap (uncurry Json.pair . fst) xs+ , Json.pair "properties" . Json.object $ fmap+ ((\(k, v) -> Json.pair (Json.keyToString k) v) . fst)+ xs , Json.pair "required" . fmap (fst . fst) $ filter snd xs ]
src/lib/Rattletrap/Utility/Json.hs view
@@ -1,12 +1,8 @@ {- hlint ignore "Avoid restricted flags" -}-{-# OPTIONS_GHC -Wno-orphans #-}--{- hlint ignore "Avoid restricted extensions" -}-{-# LANGUAGE FlexibleInstances #-}- module Rattletrap.Utility.Json ( module Rattletrap.Utility.Json , Aeson.FromJSON(parseJSON)+ , Key.Key , Aeson.ToJSON(toJSON) , Aeson.Value , Aeson.encode@@ -22,28 +18,22 @@ import qualified Data.ByteString as ByteString import qualified Data.ByteString.Lazy as LazyByteString -toKey :: String -> Key.Key-toKey = Key.fromString--fromKey :: Key.Key -> String-fromKey = Key.toString--instance Aeson.KeyValue (String, Aeson.Value) where- k .= v = (fromKey k, Aeson.toJSON v)+keyToString :: Key.Key -> String+keyToString = Key.toString required :: Aeson.FromJSON value => Aeson.Object -> String -> Aeson.Parser value-required object key = object Aeson..: toKey key+required object key = object Aeson..: Key.fromString key optional :: Aeson.FromJSON value => Aeson.Object -> String -> Aeson.Parser (Maybe value)-optional object key = object Aeson..:? toKey key+optional object key = object Aeson..:? Key.fromString key pair :: (Aeson.ToJSON value, Aeson.KeyValue pair) => String -> value -> pair-pair key value = toKey key Aeson..= value+pair key value = Key.fromString key Aeson..= value decode :: Aeson.FromJSON a => ByteString.ByteString -> Either String a decode = Aeson.eitherDecodeStrict'