{"action":"closed","issue":{"url":"https://api.github.com/repos/zombiezen/go-capnproto/issues/1","labels_url":"https://api.github.com/repos/zombiezen/go-capnproto/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/zombiezen/go-capnproto/issues/1/comments","events_url":"https://api.github.com/repos/zombiezen/go-capnproto/issues/1/events","html_url":"https://github.com/zombiezen/go-capnproto/issues/1","id":99523546,"number":1,"title":"Reduce code duplication in queued clients","user":{"login":"zombiezen","id":181535,"avatar_url":"https://avatars.githubusercontent.com/u/181535?v=3","gravatar_id":"","url":"https://api.github.com/users/zombiezen","html_url":"https://github.com/zombiezen","followers_url":"https://api.github.com/users/zombiezen/followers","following_url":"https://api.github.com/users/zombiezen/following{/other_user}","gists_url":"https://api.github.com/users/zombiezen/gists{/gist_id}","starred_url":"https://api.github.com/users/zombiezen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zombiezen/subscriptions","organizations_url":"https://api.github.com/users/zombiezen/orgs","repos_url":"https://api.github.com/users/zombiezen/repos","events_url":"https://api.github.com/users/zombiezen/events{/privacy}","received_events_url":"https://api.github.com/users/zombiezen/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/zombiezen/go-capnproto/labels/cleanup","name":"cleanup","color":"d4c5f9"}],"state":"closed","locked":false,"assignee":{"login":"zombiezen","id":181535,"avatar_url":"https://avatars.githubusercontent.com/u/181535?v=3","gravatar_id":"","url":"https://api.github.com/users/zombiezen","html_url":"https://github.com/zombiezen","followers_url":"https://api.github.com/users/zombiezen/followers","following_url":"https://api.github.com/users/zombiezen/following{/other_user}","gists_url":"https://api.github.com/users/zombiezen/gists{/gist_id}","starred_url":"https://api.github.com/users/zombiezen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zombiezen/subscriptions","organizations_url":"https://api.github.com/users/zombiezen/orgs","repos_url":"https://api.github.com/users/zombiezen/repos","events_url":"https://api.github.com/users/zombiezen/events{/privacy}","received_events_url":"https://api.github.com/users/zombiezen/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2015-08-06T20:59:07Z","updated_at":"2015-08-22T23:38:45Z","closed_at":"2015-08-22T23:38:45Z","body":"The queued clients in [fulfiller.go](https://github.com/zombiezen/go-capnproto/blob/master/fulfiller.go), [rpc/answer.go](https://github.com/zombiezen/go-capnproto/blob/master/rpc/answer.go), and [rpc/question.go](https://github.com/zombiezen/go-capnproto/blob/master/rpc/question.go) duplicate a lot of code.\r\n\r\nThe only way I can think to avoid this is extract the server type to a separate package, which changes generated code and is API-breaking."}}