{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081","repository_url":"https://api.github.com/repos/rust-lang/rfcs","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081/events","html_url":"https://github.com/rust-lang/rfcs/issues/1081","id":69864771,"number":1081,"title":"Async IO","user":{"login":"steveklabnik","id":27786,"avatar_url":"https://avatars.githubusercontent.com/u/27786?v=3","gravatar_id":"","url":"https://api.github.com/users/steveklabnik","html_url":"https://github.com/steveklabnik","followers_url":"https://api.github.com/users/steveklabnik/followers","following_url":"https://api.github.com/users/steveklabnik/following{/other_user}","gists_url":"https://api.github.com/users/steveklabnik/gists{/gist_id}","starred_url":"https://api.github.com/users/steveklabnik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steveklabnik/subscriptions","organizations_url":"https://api.github.com/users/steveklabnik/orgs","repos_url":"https://api.github.com/users/steveklabnik/repos","events_url":"https://api.github.com/users/steveklabnik/events{/privacy}","received_events_url":"https://api.github.com/users/steveklabnik/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/A-community-library","name":"A-community-library","color":"d7e101"},{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/A-libs","name":"A-libs","color":"d7e101"},{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/A-wishlist","name":"A-wishlist","color":"d7e101"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":145,"created_at":"2015-04-21T14:41:30Z","updated_at":"2016-09-13T18:38:47Z","closed_at":null,"body":"Rust currently only includes synchronous IO in the standard library. Should we also have async IO as well, or leave that to an external crate? What would the design look like?\r\n\r\nMoved from https://github.com/rust-lang/rust/issues/6842\r\n\r\nRelated: https://github.com/rust-lang/rfcs/issues/388"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/246780211","html_url":"https://github.com/rust-lang/rfcs/issues/1081#issuecomment-246780211","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1081","id":246780211,"user":{"login":"camlorn","id":6968705,"avatar_url":"https://avatars.githubusercontent.com/u/6968705?v=3","gravatar_id":"","url":"https://api.github.com/users/camlorn","html_url":"https://github.com/camlorn","followers_url":"https://api.github.com/users/camlorn/followers","following_url":"https://api.github.com/users/camlorn/following{/other_user}","gists_url":"https://api.github.com/users/camlorn/gists{/gist_id}","starred_url":"https://api.github.com/users/camlorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/camlorn/subscriptions","organizations_url":"https://api.github.com/users/camlorn/orgs","repos_url":"https://api.github.com/users/camlorn/repos","events_url":"https://api.github.com/users/camlorn/events{/privacy}","received_events_url":"https://api.github.com/users/camlorn/received_events","type":"User","site_admin":false},"created_at":"2016-09-13T18:38:47Z","updated_at":"2016-09-13T18:38:47Z","body":"@eddyb \r\nMy understanding is that you probably have a trait that encapsulates the idea of being awaitable, plus a bunch of concrete objects that represent things you might want to await on.  Making the awaitable trait `Future` is one possible choice.\r\n\r\nIf you can't pass out references and/or  trait objects, then an async function is limited to awaiting only one type of thing.\r\n\r\nWhenever the action completes, the thing doing the awaiting is going to advance, possibly killing the reference it passed out, and as far as I can tell there's no way to make the compiler understand that this is okay without unsafe.  I imagine you can do something unsafe behind a safe API, though, so maybe it's not as big a problem as it looked to me when I started this subthread.\r\n\r\nAlso, I might be way off in my understanding of the issue.  I haven't worked extensively with frameworks in other languages. Just some dabbling here and there.  If you're not understanding what I'm getting at, maybe my understanding is at fault."}}
{"actor":{"display_login":"camlorn"}}