{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/576","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/576/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/576/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/576/events","html_url":"https://github.com/rust-lang/rfcs/pull/576","id":54135851,"number":576,"title":"Amend RFC 517: Revisions to reader/writer, core::io and std::io","user":{"login":"aturon","id":709807,"avatar_url":"https://avatars.githubusercontent.com/u/709807?v=3","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"aturon","id":709807,"avatar_url":"https://avatars.githubusercontent.com/u/709807?v=3","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"milestone":null,"comments":64,"created_at":"2015-01-13T00:41:17Z","updated_at":"2015-01-30T19:28:40Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/576","html_url":"https://github.com/rust-lang/rfcs/pull/576","diff_url":"https://github.com/rust-lang/rfcs/pull/576.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/576.patch"},"body":"The [IO reform RFC](https://github.com/rust-lang/rfcs/pull/517) is [being split](https://github.com/rust-lang/rfcs/pull/517#issuecomment-69669731) into several semi-independent pieces, posted as PRs like this one.\r\n\r\nThis RFC amendment adds the sections on `Reader`/`Writer` revisions, as well as `core::io` and `std::io` (which are closely related).\r\n\r\n[Rendered](https://github.com/aturon/rfcs/blob/io-reader-writer/text/0517-io-os-reform.md)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/72256182","html_url":"https://github.com/rust-lang/rfcs/pull/576#issuecomment-72256182","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/576","id":72256182,"user":{"login":"aturon","id":709807,"avatar_url":"https://avatars.githubusercontent.com/u/709807?v=3","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"created_at":"2015-01-30T19:28:40Z","updated_at":"2015-01-30T19:28:40Z","body":"Oops, my writeup above left out the associated error type change, which is still semi-open. However, given the limited time and serious ergonomic pain, I think we should probably be conservative here and stick with the known-to-work style of today's API.\r\n\r\n@Ericson2314 I believe there may be a path toward generalization in the future by using defaulted associated types and type parameters. I'd be glad to try to hash this out with you; I feel like especially if we can future-proof against something more expressive, there's not much reason to take a risky gambit now.\r\n\r\n(And while I agree that this is ergonomics vs expressiveness, it's crucial to consider the details on each side. The expressiveness gains here are, in my opinion, not very important in practice except in some marginal cases, but would impose a hefty ergonomic tax on *everyone* using IO.)"}}