mirror of
https://github.com/github/semantic.git
synced 2025-01-07 16:07:28 +03:00
Fix semantic-parse build.
Needed a JSON-marshalling instance for Parse.Err-wrapped values. Fixes #575.
This commit is contained in:
parent
956338eb2f
commit
336a74c2e6
@ -15,7 +15,8 @@ module AST.Marshal.JSON
|
||||
( MarshalJSON(..)
|
||||
) where
|
||||
|
||||
import Data.Aeson as Aeson
|
||||
import AST.Parse
|
||||
import Data.Aeson as Aeson hiding (Success)
|
||||
import Data.List.NonEmpty (NonEmpty)
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as Text
|
||||
@ -78,6 +79,10 @@ instance (GValue t) => GValue ([] :.: t) where
|
||||
instance (GValue t) => GValue (NonEmpty :.: t) where
|
||||
gvalue (Comp1 ts) = toJSON $ fmap gvalue ts
|
||||
|
||||
instance (GValue t) => GValue (Err :.: t) where
|
||||
gvalue (Comp1 (Success t)) = gvalue t
|
||||
gvalue (Comp1 (Fail _)) = Null
|
||||
|
||||
-- GFields operates on product field types: it takes an accumulator, a datatype, and returns a new accumulator value.
|
||||
class GFields f where
|
||||
gfields :: ToJSON a => [(Text, Value)] -> f a -> [(Text, Value)]
|
||||
|
Loading…
Reference in New Issue
Block a user