{"action":"created","issue":{"url":"https://api.github.com/repos/Marwes/combine/issues/37","labels_url":"https://api.github.com/repos/Marwes/combine/issues/37/labels{/name}","comments_url":"https://api.github.com/repos/Marwes/combine/issues/37/comments","events_url":"https://api.github.com/repos/Marwes/combine/issues/37/events","html_url":"https://github.com/Marwes/combine/pull/37","id":95516196,"number":37,"title":"Added a stream for non-cloneable iterators","user":{"login":"Marwes","id":957312,"avatar_url":"https://avatars.githubusercontent.com/u/957312?v=3","gravatar_id":"","url":"https://api.github.com/users/Marwes","html_url":"https://github.com/Marwes","followers_url":"https://api.github.com/users/Marwes/followers","following_url":"https://api.github.com/users/Marwes/following{/other_user}","gists_url":"https://api.github.com/users/Marwes/gists{/gist_id}","starred_url":"https://api.github.com/users/Marwes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Marwes/subscriptions","organizations_url":"https://api.github.com/users/Marwes/orgs","repos_url":"https://api.github.com/users/Marwes/repos","events_url":"https://api.github.com/users/Marwes/events{/privacy}","received_events_url":"https://api.github.com/users/Marwes/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Marwes/combine/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/Marwes/combine/milestones/2","html_url":"https://github.com/Marwes/combine/milestones/1.1","labels_url":"https://api.github.com/repos/Marwes/combine/milestones/2/labels","id":1236729,"number":2,"title":"1.1","description":null,"creator":{"login":"Marwes","id":957312,"avatar_url":"https://avatars.githubusercontent.com/u/957312?v=3","gravatar_id":"","url":"https://api.github.com/users/Marwes","html_url":"https://github.com/Marwes","followers_url":"https://api.github.com/users/Marwes/followers","following_url":"https://api.github.com/users/Marwes/following{/other_user}","gists_url":"https://api.github.com/users/Marwes/gists{/gist_id}","starred_url":"https://api.github.com/users/Marwes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Marwes/subscriptions","organizations_url":"https://api.github.com/users/Marwes/orgs","repos_url":"https://api.github.com/users/Marwes/repos","events_url":"https://api.github.com/users/Marwes/events{/privacy}","received_events_url":"https://api.github.com/users/Marwes/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":0,"state":"open","created_at":"2015-08-02T11:17:48Z","updated_at":"2015-08-02T11:17:48Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2015-07-16T20:08:25Z","updated_at":"2015-08-02T11:20:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Marwes/combine/pulls/37","html_url":"https://github.com/Marwes/combine/pull/37","diff_url":"https://github.com/Marwes/combine/pull/37.diff","patch_url":"https://github.com/Marwes/combine/pull/37.patch"},"body":"This PR sketches out a possible implementation for a stream which do not directly support cloning. It does so by storing the tokens read from the iterator into a circular buffer which only allows for partial backtracking. Using this additional indirection iterators which cannot be cloned can be used as streams.\r\n\r\nThe performance drop using this stream type was measured to be about 20% for the JSON parser in the benches folder. Reading directly from a file or socket is not tested but it should work though the `chars` iterator on `Read` (though it is currently unstable).\r\n\r\nI will hold on to merging this for a while as I would really appreciate some feedback on this as I do not intend to use this myself (and it needs documentation).\r\n\r\ncc #30 "},"comment":{"url":"https://api.github.com/repos/Marwes/combine/issues/comments/127016857","html_url":"https://github.com/Marwes/combine/pull/37#issuecomment-127016857","issue_url":"https://api.github.com/repos/Marwes/combine/issues/37","id":127016857,"user":{"login":"Marwes","id":957312,"avatar_url":"https://avatars.githubusercontent.com/u/957312?v=3","gravatar_id":"","url":"https://api.github.com/users/Marwes","html_url":"https://github.com/Marwes","followers_url":"https://api.github.com/users/Marwes/followers","following_url":"https://api.github.com/users/Marwes/following{/other_user}","gists_url":"https://api.github.com/users/Marwes/gists{/gist_id}","starred_url":"https://api.github.com/users/Marwes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Marwes/subscriptions","organizations_url":"https://api.github.com/users/Marwes/orgs","repos_url":"https://api.github.com/users/Marwes/repos","events_url":"https://api.github.com/users/Marwes/events{/privacy}","received_events_url":"https://api.github.com/users/Marwes/received_events","type":"User","site_admin":false},"created_at":"2015-08-02T11:20:33Z","updated_at":"2015-08-02T11:20:33Z","body":"To make sure I can release a stable 1.0 within a week or two I will hold of with this PR until shortly after 1.0 when I will put this and probably range streams in a 1.1-beta version where it can be better tested.\r\n\r\n#42 "}}