Skip to content

Commit b16d945

Browse files
committed
Derive Read for each data type.
1 parent 652982f commit b16d945

File tree

2 files changed

+40
-40
lines changed

2 files changed

+40
-40
lines changed

Github/Data/Definitions.hs

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ data Error =
1616
| ParseError String -- ^ An error in the parser itself.
1717
| JsonError String -- ^ The JSON is malformed or unexpected.
1818
| UserError String -- ^ Incorrect input.
19-
deriving (Show, Eq)
19+
deriving (Show, Eq, Read)
2020

2121
-- | A date in the Github format, which is a special case of ISO-8601.
2222
newtype GithubDate = GithubDate { fromGithubDate :: UTCTime }
23-
deriving (Show, Data, Typeable, Eq, Ord)
23+
deriving (Show, Data, Typeable, Eq, Ord, Read)
2424

2525
data Commit = Commit {
2626
commitSha :: String
@@ -31,13 +31,13 @@ data Commit = Commit {
3131
,commitAuthor :: Maybe GithubUser
3232
,commitFiles :: [File]
3333
,commitStats :: Maybe Stats
34-
} deriving (Show, Data, Typeable, Eq, Ord)
34+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
3535

3636
data Tree = Tree {
3737
treeSha :: String
3838
,treeUrl :: String
3939
,treeGitTrees :: [GitTree]
40-
} deriving (Show, Data, Typeable, Eq, Ord)
40+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
4141

4242
data GitTree = GitTree {
4343
gitTreeType :: String
@@ -46,7 +46,7 @@ data GitTree = GitTree {
4646
,gitTreeSize :: Maybe Int
4747
,gitTreePath :: String
4848
,gitTreeMode :: String
49-
} deriving (Show, Data, Typeable, Eq, Ord)
49+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
5050

5151
data GitCommit = GitCommit {
5252
gitCommitMessage :: String
@@ -56,21 +56,21 @@ data GitCommit = GitCommit {
5656
,gitCommitTree :: Tree
5757
,gitCommitSha :: Maybe String
5858
,gitCommitParents :: [Tree]
59-
} deriving (Show, Data, Typeable, Eq, Ord)
59+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
6060

6161
data GithubUser = GithubUser {
6262
githubUserAvatarUrl :: String
6363
,githubUserLogin :: String
6464
,githubUserUrl :: String
6565
,githubUserId :: Int
6666
,githubUserGravatarId :: String
67-
} deriving (Show, Data, Typeable, Eq, Ord)
67+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
6868

6969
data GitUser = GitUser {
7070
gitUserName :: String
7171
,gitUserEmail :: String
7272
,gitUserDate :: GithubDate
73-
} deriving (Show, Data, Typeable, Eq, Ord)
73+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
7474

7575
data File = File {
7676
fileBlobUrl :: String
@@ -82,13 +82,13 @@ data File = File {
8282
,filePatch :: String
8383
,fileFilename :: String
8484
,fileDeletions :: Int
85-
} deriving (Show, Data, Typeable, Eq, Ord)
85+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
8686

8787
data Stats = Stats {
8888
statsAdditions :: Int
8989
,statsTotal :: Int
9090
,statsDeletions :: Int
91-
} deriving (Show, Data, Typeable, Eq, Ord)
91+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
9292

9393
data Comment = Comment {
9494
commentPosition :: Maybe Int
@@ -102,7 +102,7 @@ data Comment = Comment {
102102
,commentPath :: Maybe String
103103
,commentUser :: GithubUser
104104
,commentId :: Int
105-
} deriving (Show, Data, Typeable, Eq, Ord)
105+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
106106

107107
data Diff = Diff {
108108
diffStatus :: String
@@ -117,7 +117,7 @@ data Diff = Diff {
117117
,diffAheadBy :: Int
118118
,diffDiffUrl :: String
119119
,diffPermalinkUrl :: String
120-
} deriving (Show, Data, Typeable, Eq, Ord)
120+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
121121

122122
data Gist = Gist {
123123
gistUser :: GithubUser
@@ -132,7 +132,7 @@ data Gist = Gist {
132132
,gistId :: String
133133
,gistFiles :: [GistFile]
134134
,gistGitPullUrl :: String
135-
} deriving (Show, Data, Typeable, Eq, Ord)
135+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
136136

137137
data GistFile = GistFile {
138138
gistFileType :: String
@@ -141,7 +141,7 @@ data GistFile = GistFile {
141141
,gistFileLanguage :: Maybe String
142142
,gistFileFilename :: String
143143
,gistFileContent :: Maybe String
144-
} deriving (Show, Data, Typeable, Eq, Ord)
144+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
145145

146146
data GistComment = GistComment {
147147
gistCommentUser :: GithubUser
@@ -150,27 +150,27 @@ data GistComment = GistComment {
150150
,gistCommentBody :: String
151151
,gistCommentUpdatedAt :: GithubDate
152152
,gistCommentId :: Int
153-
} deriving (Show, Data, Typeable, Eq, Ord)
153+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
154154

155155
data Blob = Blob {
156156
blobUrl :: String
157157
,blobEncoding :: String
158158
,blobContent :: String
159159
,blobSha :: String
160160
,blobSize :: Int
161-
} deriving (Show, Data, Typeable, Eq, Ord)
161+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
162162

163163
data GitReference = GitReference {
164164
gitReferenceObject :: GitObject
165165
,gitReferenceUrl :: String
166166
,gitReferenceRef :: String
167-
} deriving (Show, Data, Typeable, Eq, Ord)
167+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
168168

169169
data GitObject = GitObject {
170170
gitObjectType :: String
171171
,gitObjectSha :: String
172172
,gitObjectUrl :: String
173-
} deriving (Show, Data, Typeable, Eq, Ord)
173+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
174174

175175
data Issue = Issue {
176176
issueClosedAt :: Maybe GithubDate
@@ -190,7 +190,7 @@ data Issue = Issue {
190190
,issueId :: Int
191191
,issueComments :: Int
192192
,issueMilestone :: Maybe Milestone
193-
} deriving (Show, Data, Typeable, Eq, Ord)
193+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
194194

195195
data Milestone = Milestone {
196196
milestoneCreator :: GithubUser
@@ -203,19 +203,19 @@ data Milestone = Milestone {
203203
,milestoneUrl :: String
204204
,milestoneCreatedAt :: GithubDate
205205
,milestoneState :: String
206-
} deriving (Show, Data, Typeable, Eq, Ord)
206+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
207207

208208
data IssueLabel = IssueLabel {
209209
labelColor :: String
210210
,labelUrl :: String
211211
,labelName :: String
212-
} deriving (Show, Data, Typeable, Eq, Ord)
212+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
213213

214214
data PullRequestReference = PullRequestReference {
215215
pullRequestReferenceHtmlUrl :: Maybe String
216216
,pullRequestReferencePatchUrl :: Maybe String
217217
,pullRequestReferenceDiffUrl :: Maybe String
218-
} deriving (Show, Data, Typeable, Eq, Ord)
218+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
219219

220220
data IssueComment = IssueComment {
221221
issueCommentUpdatedAt :: GithubDate
@@ -224,7 +224,7 @@ data IssueComment = IssueComment {
224224
,issueCommentCreatedAt :: GithubDate
225225
,issueCommentBody :: String
226226
,issueCommentId :: Int
227-
} deriving (Show, Data, Typeable, Eq, Ord)
227+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
228228

229229
-- | Data describing an @Event@.
230230
data EventType =
@@ -236,7 +236,7 @@ data EventType =
236236
| Assigned -- ^ The issue was assigned to the actor.
237237
| Closed -- ^ The issue was closed by the actor. When the commit_id is present, it identifies the commit that closed the issue using “closes / fixes #NN” syntax.
238238
| Reopened -- ^ The issue was reopened by the actor.
239-
deriving (Show, Data, Typeable, Eq, Ord)
239+
deriving (Show, Data, Typeable, Eq, Ord, Read)
240240

241241
data Event = Event {
242242
eventActor :: GithubUser
@@ -246,14 +246,14 @@ data Event = Event {
246246
,eventCreatedAt :: GithubDate
247247
,eventId :: Int
248248
,eventIssue :: Maybe Issue
249-
} deriving (Show, Data, Typeable, Eq, Ord)
249+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
250250

251251
data SimpleOrganization = SimpleOrganization {
252252
simpleOrganizationUrl :: String
253253
,simpleOrganizationAvatarUrl :: String
254254
,simpleOrganizationId :: Int
255255
,simpleOrganizationLogin :: String
256-
} deriving (Show, Data, Typeable, Eq, Ord)
256+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
257257

258258
data Organization = Organization {
259259
organizationType :: String
@@ -272,7 +272,7 @@ data Organization = Organization {
272272
,organizationCreatedAt :: GithubDate
273273
,organizationName :: Maybe String
274274
,organizationId :: Int
275-
} deriving (Show, Data, Typeable, Eq, Ord)
275+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
276276

277277
data PullRequest = PullRequest {
278278
pullRequestClosedAt :: Maybe GithubDate
@@ -291,7 +291,7 @@ data PullRequest = PullRequest {
291291
,pullRequestMergedAt :: Maybe GithubDate
292292
,pullRequestTitle :: String
293293
,pullRequestId :: Int
294-
} deriving (Show, Data, Typeable, Eq, Ord)
294+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
295295

296296
data DetailedPullRequest = DetailedPullRequest {
297297
-- this is a duplication of a PullRequest
@@ -323,17 +323,17 @@ data DetailedPullRequest = DetailedPullRequest {
323323
,detailedPullRequestCommits :: Int
324324
,detailedPullRequestMerged :: Bool
325325
,detailedPullRequestMergeable :: Bool
326-
} deriving (Show, Data, Typeable, Eq, Ord)
326+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
327327

328328
data PullRequestLinks = PullRequestLinks {
329329
pullRequestLinksReviewComments :: String
330330
,pullRequestLinksComments :: String
331331
,pullRequestLinksHtml :: String
332332
,pullRequestLinksSelf :: String
333-
} deriving (Show, Data, Typeable, Eq, Ord)
333+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
334334

335335
data PullRequestCommit = PullRequestCommit {
336-
} deriving (Show, Data, Typeable, Eq, Ord)
336+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
337337

338338
data Repo = Repo {
339339
repoSshUrl :: String
@@ -361,41 +361,41 @@ data Repo = Repo {
361361
,repoHasWiki :: Maybe Bool
362362
,repoHasIssues :: Maybe Bool
363363
,repoHasDownloads :: Maybe Bool
364-
} deriving (Show, Data, Typeable, Eq, Ord)
364+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
365365

366366
data Contributor
367367
-- | An existing Github user, with their number of contributions, avatar
368368
-- URL, login, URL, ID, and Gravatar ID.
369369
= KnownContributor Int String String String Int String
370370
-- | An unknown Github user with their number of contributions and recorded name.
371371
| AnonymousContributor Int String
372-
deriving (Show, Data, Typeable, Eq, Ord)
372+
deriving (Show, Data, Typeable, Eq, Ord, Read)
373373

374374
-- | This is only used for the FromJSON instance.
375375
data Languages = Languages { getLanguages :: [Language] }
376-
deriving (Show, Data, Typeable, Eq, Ord)
376+
deriving (Show, Data, Typeable, Eq, Ord, Read)
377377

378378
-- | A programming language with the name and number of characters written in
379379
-- it.
380380
data Language = Language String Int
381-
deriving (Show, Data, Typeable, Eq, Ord)
381+
deriving (Show, Data, Typeable, Eq, Ord, Read)
382382

383383
data Tag = Tag {
384384
tagName :: String
385385
,tagZipballUrl :: String
386386
,tagTarballUrl :: String
387387
,tagCommit :: BranchCommit
388-
} deriving (Show, Data, Typeable, Eq, Ord)
388+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
389389

390390
data Branch = Branch {
391391
branchName :: String
392392
,branchCommit :: BranchCommit
393-
} deriving (Show, Data, Typeable, Eq, Ord)
393+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
394394

395395
data BranchCommit = BranchCommit {
396396
branchCommitSha :: String
397397
,branchCommitUrl :: String
398-
} deriving (Show, Data, Typeable, Eq, Ord)
398+
} deriving (Show, Data, Typeable, Eq, Ord, Read)
399399

400400
data DetailedUser = DetailedUser {
401401
detailedUserCreatedAt :: GithubDate
@@ -417,4 +417,4 @@ data DetailedUser = DetailedUser {
417417
,detailedUserId :: Int
418418
,detailedUserHtmlUrl :: String
419419
,detailedUserLogin :: String
420-
} deriving (Show, Data, Typeable, Eq, Ord)
420+
} deriving (Show, Data, Typeable, Eq, Ord, Read)

Github/Repos.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ data RepoPublicity =
2323
| Public -- ^ Only public repos.
2424
| Private -- ^ Only private repos.
2525
| Member -- ^ Only repos to which the user is a member but not an owner.
26-
deriving (Show, Eq)
26+
deriving (Show, Eq, Read)
2727

2828
-- | The repos for a user, by their login. Can be restricted to just repos they
2929
-- own, are a member of, or publicize. Private repos are currently not

0 commit comments

Comments
 (0)