{"action":"created","issue":{"url":"https://api.github.com/repos/diesel-rs/diesel/issues/386","repository_url":"https://api.github.com/repos/diesel-rs/diesel","labels_url":"https://api.github.com/repos/diesel-rs/diesel/issues/386/labels{/name}","comments_url":"https://api.github.com/repos/diesel-rs/diesel/issues/386/comments","events_url":"https://api.github.com/repos/diesel-rs/diesel/issues/386/events","html_url":"https://github.com/diesel-rs/diesel/pull/386","id":168467772,"number":386,"title":"Implement `HasMany` as a stable non-procedural macro","user":{"login":"sgrif","id":1529387,"avatar_url":"https://avatars.githubusercontent.com/u/1529387?v=3","gravatar_id":"","url":"https://api.github.com/users/sgrif","html_url":"https://github.com/sgrif","followers_url":"https://api.github.com/users/sgrif/followers","following_url":"https://api.github.com/users/sgrif/following{/other_user}","gists_url":"https://api.github.com/users/sgrif/gists{/gist_id}","starred_url":"https://api.github.com/users/sgrif/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgrif/subscriptions","organizations_url":"https://api.github.com/users/sgrif/orgs","repos_url":"https://api.github.com/users/sgrif/repos","events_url":"https://api.github.com/users/sgrif/events{/privacy}","received_events_url":"https://api.github.com/users/sgrif/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-07-30T13:38:26Z","updated_at":"2016-07-30T13:38:34Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/diesel-rs/diesel/pulls/386","html_url":"https://github.com/diesel-rs/diesel/pull/386","diff_url":"https://github.com/diesel-rs/diesel/pull/386.diff","patch_url":"https://github.com/diesel-rs/diesel/pull/386.patch"},"body":"This follows the same approach as belongs to. I've also changed the\r\nprocedural form to more or less share code with the non-procedural, so\r\nthat we get access to `$crate`.\r\n\r\nWhen I started this process, I was really hoping to have the procedural\r\nversion just parse the options and give better error messages if they\r\nare invalid, then call the stable form. Unfortunately, because of how\r\nmacro expansion works, I can't just \"insert the struct body into the\r\nmacro call\", as at that point the struct is a single token and can't be\r\nmatched on. I'll probably end up still doing this eventually, and have\r\nthe procedural form just call the entry point that occurs after\r\n`__diesel_parse_struct_body`."},"comment":{"url":"https://api.github.com/repos/diesel-rs/diesel/issues/comments/236365726","html_url":"https://github.com/diesel-rs/diesel/pull/386#issuecomment-236365726","issue_url":"https://api.github.com/repos/diesel-rs/diesel/issues/386","id":236365726,"user":{"login":"sgrif","id":1529387,"avatar_url":"https://avatars.githubusercontent.com/u/1529387?v=3","gravatar_id":"","url":"https://api.github.com/users/sgrif","html_url":"https://github.com/sgrif","followers_url":"https://api.github.com/users/sgrif/followers","following_url":"https://api.github.com/users/sgrif/following{/other_user}","gists_url":"https://api.github.com/users/sgrif/gists{/gist_id}","starred_url":"https://api.github.com/users/sgrif/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgrif/subscriptions","organizations_url":"https://api.github.com/users/sgrif/orgs","repos_url":"https://api.github.com/users/sgrif/repos","events_url":"https://api.github.com/users/sgrif/events{/privacy}","received_events_url":"https://api.github.com/users/sgrif/received_events","type":"User","site_admin":false},"created_at":"2016-07-30T13:38:34Z","updated_at":"2016-07-30T13:38:34Z","body":"Review? @diesel-rs/contributors "}}
{"actor":{"display_login":"sgrif"}}