on master help sign in
Switch from Aeson to Json.Encode
01e6c52Evan Czaplicki
src/Reporting/Region.hs+17−16
@@ -3,12 +3,13 @@ module Reporting.Region
3 ( Region(..)
3 ( Region(..)
4 , Position(..)
4 , Position(..)
5 , merge
5 , merge
6+ , encode
6 )
7 )
7 where
8 where
8
9
9−import Data.Aeson ((.=))
10+
10−import qualified Data.Aeson as Json
11+import qualified Json.Encode as Json
11−import Data.Binary
12+import Data.Binary (Binary, get, put)
12
13
13
14
14
15
@@ -33,27 +34,27 @@ data Position =
33
34
34merge :: Region -> Region -> Region
35merge :: Region -> Region -> Region
35merge (Region start _) (Region _ end) =
36merge (Region start _) (Region _ end) =
36− Region start end
37+ Region start end
37
38
38
39
39
40
40-- JSON
41-- JSON
41
42
42
43
43−instance Json.ToJSON Region where
44+encode :: Region -> Json.Value
44− toJSON (Region start end) =
45+encode (Region start end) =
45− Json.object
46+ Json.object
46− [ "start" .= start
47+ [ ("start", encodePosition start)
47− , "end" .= end
48+ , ("end", encodePosition end)
48− ]
49+ ]
49
50
50
51
51−instance Json.ToJSON Position where
52+encodePosition :: Position -> Json.Value
52− toJSON (Position line column) =
53+encodePosition (Position line column) =
53− Json.object
54+ Json.object
54− [ "line" .= line
55+ [ ("line", Json.int line)
55− , "column" .= column
56+ , ("column", Json.int column)
56− ]
57+ ]
57
58
58
59
59
60