Fedor Sakharov
376049b51d
Merge branch 'master' into fs-stream-step-by
2019-09-21 19:07:27 +03:00
Fedor Sakharov
bf7121d2d4
adds stream::inspect combinator
2019-09-21 18:19:47 +03:00
Fedor Sakharov
e74c0cec1f
adds stream::step_by combinator
2019-09-21 17:44:57 +03:00
Fedor Sakharov
ea080e7305
Merge branch 'master' into fs-stream-skip-while
2019-09-21 17:42:44 +03:00
bors[bot]
99724497b3
Merge #221
...
221: adds stream::filter combinator r=stjepang a=montekki
Ref: #129
Stdlib: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.filter
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
2019-09-21 14:22:58 +00:00
Fedor Sakharov
fdd81e1b2a
Actually export Skip
2019-09-21 16:40:58 +03:00
Fedor Sakharov
e430851bc4
export Filter type
2019-09-21 16:40:01 +03:00
Fedor Sakharov
75da138696
export Skip type
2019-09-21 16:37:30 +03:00
Fedor Sakharov
93463e8df3
export SkipWhile type
2019-09-21 16:34:51 +03:00
Stjepan Glavina
1fa196812a
Fix compilation errors around Stream
2019-09-21 15:05:57 +02:00
Stjepan Glavina
edfa2358a4
Re-export IO traits from futures
2019-09-21 14:30:52 +02:00
Fedor Sakharov
f9f97c43c4
adds stream::skip_while combinator
2019-09-21 15:12:41 +03:00
Fedor Sakharov
570329b176
adds stream::skip combinator
2019-09-21 14:40:25 +03:00
Fedor Sakharov
e7ae10ebee
adds stream::filter combinator
2019-09-21 14:03:17 +03:00
Yoshua Wuyts
7fe6c8a42c
add stream::join
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-19 13:53:36 +02:00
Wonwoo Choi
9c00d0b903
Rename: extend_with_stream => stream_extend
2019-09-19 18:34:31 +09:00
Wonwoo Choi
a5a6dc24c4
Add stream::Extend
2019-09-19 18:33:25 +09:00
Yoshua Wuyts
c533d5f906
implement feedback & fix tests
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-18 21:25:58 +02:00
Yoshua Wuyts
9a07196402
Update src/stream/double_ended_stream.rs
...
Co-Authored-By: Stjepan Glavina <stjepang@gmail.com>
2019-09-18 12:43:14 +02:00
Yoshua Wuyts
f7ec3f4e2d
Update src/stream/stream/mod.rs
...
Co-Authored-By: Stjepan Glavina <stjepang@gmail.com>
2019-09-18 12:43:06 +02:00
Yoshua Wuyts
bfb16790c3
Update src/stream/from_stream.rs
...
Co-Authored-By: Stjepan Glavina <stjepang@gmail.com>
2019-09-18 12:42:58 +02:00
Yoshua Wuyts
b670600555
Update src/stream/into_stream.rs
...
Co-Authored-By: Stjepan Glavina <stjepang@gmail.com>
2019-09-18 12:42:46 +02:00
Yoshua Wuyts
488c90c0c4
add feature guards for unstable features
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-18 01:26:04 +02:00
bors[bot]
c8475ca95e
Merge #207
...
207: Added the ability to collect a stream of results r=yoshuawuyts a=sunjay
As requested here: https://twitter.com/yoshuawuyts/status/1174026374316773377
The standard library has a very useful implementation of `FromIterator` that takes an iterator of `Result<T, E>` values and is able to produce a value of type `Result<Vec<T>, E>`. I asked for this in `async-std` and @yoshuawuyts recommended that I contribute the impl. It turns out that the implementation in the standard library is even more general than I initially thought. It allows any collection that implements `FromIterator` to be collected from an iterator of `Result<T, E>` values. That means that you can collect into `Result<Vec<T>, E>`, `Result<HashSet<T>, E>`, etc.
I wanted to add a similarly generic impl for this crate so we can also support collecting into any collection that implements `FromStream`.
The implementation for this is based heavily on [what exists in `std`](9150f844e2/src/libcore/result.rs (L1379-L1429)
). I made a new `result` module since that's where this impl is in `std`. I still wanted to maintain the conventions of this repo, so I copied the `vec` module that @yoshuawuyts created in #125 . Much like in that PR, the new `result` module is private.
There is a doctest in the documentation for `collect` that both teaches that this feature exists and tests that it works in some simple cases.
## Documentation Screenshot

Co-authored-by: Sunjay Varma <varma.sunjay@gmail.com>
2019-09-17 22:35:00 +00:00
Yoshua Wuyts
aa94d450d6
update stream::fuse
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-18 00:00:30 +02:00
Tyler Neely
7b4bb26c5c
Remove redundant Sized bound
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 23:52:26 +02:00
Tyler Neely
44b3d3dadd
Remove irrelevant example
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 23:50:22 +02:00
Tyler Neely
78c49f92b6
Add initial Fuse implementation for Stream
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 23:48:14 +02:00
Sunjay Varma
ad0510110c
Added the ability to collect a stream of results
2019-09-17 16:25:26 -04:00
Yoshua Wuyts
98927a79a9
rebase
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 19:17:51 +02:00
Yoshua Wuyts
e6a3160c8b
add unstable cfg to FromStream/IntoStream
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 19:17:51 +02:00
Yoshua Wuyts
cb7f3dd376
remove unused types
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 19:17:51 +02:00
Yoshua Wuyts
6ee3f6cf9c
tests pass again
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 19:17:51 +02:00
Yoshua Wuyts
6c4c958abc
from/into stream
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
update examples
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
impl collect
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
compiles!
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
layout base for collect into vec
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
fmt
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
progress
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
compiles!
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
define failing test
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
cargo fmt
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
stuck again
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
fix trait bounds!
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
cargo fmt
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
hide dyn fut impl
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
dyn ret for vec
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
cargo fmt
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
collect docs
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
remove macro from vec::from_stream
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
shorten collect trait bound
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
Remove some Unpin and Send bounds
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-17 19:17:49 +02:00
bors[bot]
60a62f90fd
Merge #180
...
180: adds stream::fold combinator r=stjepang a=montekki
Fold. Kind of clumsy around the part with the option and moving out of the shared context.
___
Stdlib: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.fold
Ref: #129
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
2019-09-17 09:56:18 +00:00
bors[bot]
08d954bb91
Merge #178
...
178: adds stream::enumerate combinator r=stjepang a=montekki
enumerate might be handy.
---
Stdlib: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.enumerate
Ref: #129
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
2019-09-17 09:38:31 +00:00
Fedor Sakharov
9487b73f12
Update src/stream/stream/enumerate.rs
...
Co-Authored-By: Stjepan Glavina <stjepang@gmail.com>
2019-09-17 12:31:24 +03:00
Fedor Sakharov
efe351659f
Fixes review issues
2019-09-17 12:25:02 +03:00
Wonwoo Choi
73db46c90d
Add Stream::zip
2019-09-17 14:11:06 +09:00
Wonwoo Choi
b70dfeab15
Require S: async_std::stream::Stream in Scan
2019-09-16 18:35:37 +09:00
Wonwoo Choi
d6ffdbce8d
Remove Unpin bound in impl Stream for T
2019-09-16 18:25:46 +09:00
Wonwoo Choi
e7b0fe2d2e
Remove Unpin bounds more
2019-09-16 11:30:09 +09:00
Wonwoo Choi
91e61cf6bf
Remove unnecessary Unpin bounds
2019-09-15 21:18:02 +09:00
Wonwoo Choi
50a7db2af4
Add Stream::scan
2019-09-14 23:26:46 +09:00
bors[bot]
e060326910
Merge #177
...
177: implement DoubleEndedStream r=yoshuawuyts a=yoshuawuyts
Ref #129 . This is the most basic version of the `DoubleEndedStream` trait. Because there is no counterpart in `futures-rs` we allow this to be implementable (not sure if we should though?).
This is not a high-priority trait to implement, with probably the most useful addition being the blanket impl over [`std::iter::Fuse`](https://doc.rust-lang.org/std/iter/struct.Fuse.html ) (where we should have a `Fuse` counterpart for `Stream` also).
So I'm taking this one step at the time, and this PR introduces just the bare minimum to get things working. Thanks!
r? @stjepang @taiki-e
## Refs
- https://doc.rust-lang.org/std/iter/trait.DoubleEndedIterator.html
- #129
Co-authored-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-13 17:52:10 +00:00
Yoshua Wuyts
fda74ac0ab
mark as unstable
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-13 19:36:57 +02:00
Yoshua Wuyts
40fb485cca
cargo fmt
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-13 19:35:18 +02:00
Yoshua Wuyts
23ca060e4c
implement DoubleEndedStream
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-13 19:35:18 +02:00
Fedor Sakharov
0080a0da8c
change expect to unwrap
2019-09-12 18:15:20 +03:00
Fedor Sakharov
6c3f8af62d
fixes after #145
2019-09-11 22:07:20 +03:00
Fedor Sakharov
774550ca99
Merge branch 'master' into fs-stream-fold
2019-09-11 22:05:04 +03:00
Fedor Sakharov
3dc33f54b4
fixes after #145
2019-09-11 22:03:44 +03:00
Fedor Sakharov
9b3658244d
Merge branch 'master' into fs-stream-enumerate
2019-09-11 22:01:48 +03:00
Fedor Sakharov
18428d6bfe
housekeeping after 145
2019-09-11 21:47:52 +03:00
Stjepan Glavina
2497f4d3e1
Merge branch 'master' into poll_next
2019-09-11 17:08:25 +02:00
Stjepan Glavina
724a9f4eb0
Add Stream::poll_next
2019-09-11 17:06:02 +02:00
Fedor Sakharov
cdd4215e8f
forgot None case
2019-09-11 10:09:52 +03:00
Fedor Sakharov
2d75ffacc4
fixes example to resemble std more
2019-09-11 10:08:08 +03:00
Fedor Sakharov
5b720ab1e2
adds stream::fold combinator
2019-09-11 09:54:25 +03:00
Fedor Sakharov
97a5f9b50c
adds stream::find combinator
2019-09-10 23:38:11 +03:00
Fedor Sakharov
ed944d051a
adds stream::enumerate combinator
2019-09-10 20:43:56 +03:00
Fedor Sakharov
efb8415429
Merge branch 'master' into fs-stream-find-map
2019-09-10 16:25:38 +03:00
bors[bot]
6d1e71fb68
Merge #163
...
163: adds stream::filter_map combinator r=yoshuawuyts a=montekki
Implements a `flat_map` combinator. Currently the same about `ret!` as in #162 .
Also the naming should probably be `FilterMapStream`, but in that case `Take` stream should also change it's name i guess.
Stdlib: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.flat_map
Ref: #129
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
2019-09-10 12:41:08 +00:00
bors[bot]
a0c9442261
Merge #166
...
166: adds stream::nth combinator r=yoshuawuyts a=montekki
Implements `nth` combinator.
---
Stdlib: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.nth
Ref: #129
Co-authored-by: Fedor Sakharov <fedor.sakharov@gmail.com>
2019-09-10 12:11:04 +00:00
Fedor Sakharov
9b381e427f
Apply suggestions from code review
...
Co-Authored-By: Yoshua Wuyts <yoshuawuyts+github@gmail.com>
2019-09-10 15:01:25 +03:00
Fedor Sakharov
272f74c1da
fixes to stream::min_by ( #162 )
...
* fixes to stream::min_by
* no reason to split these impls
* remove Debug derive from MinByFuture
2019-09-10 13:53:30 +02:00
Fedor Sakharov
45bd0ef13d
adds stream::find_map combinator
2019-09-10 09:59:00 +03:00
Fedor Sakharov
43b7523c69
remove Debug derive from NthFuture
2019-09-09 12:42:52 +03:00
Fedor Sakharov
45cd3b0894
adds stream::nth combinator
2019-09-08 21:42:35 +03:00
Fedor Sakharov
55bdea4649
adds stream::filter_map combinator
2019-09-08 18:09:33 +03:00
Yoshua Wuyts
ba43a05d01
split stream into multiple files ( #150 )
...
* split stream into multiple files
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
* cargo fmt
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-09-08 12:56:51 +02:00
Fedor Sakharov
7e3599a6a5
add stream::min_by method ( #146 )
...
* add stream::min_by method
* Update src/stream/stream.rs
Co-Authored-By: Yoshua Wuyts <yoshuawuyts+github@gmail.com>
2019-09-06 12:08:51 +02:00
Stjepan Glavina
bac74c2d7f
Reduce dependency on futures crate ( #140 )
...
* Add future::poll_fn
* Replace all uses of poll_fn with the new one
* Remove some uses of futures
* Simplify ReadDir and DirEntry
* Remove some use of futures from File
* Use futures subcrates
* Fix imports in docs
* Remove futures-util dependency
* Remove futures-executor-preview
* Refactor
* Require more features in the futures-preview crate
2019-09-05 01:22:41 +02:00
Shady Khalifa
bff10fe83b
Stream::any implementation ( #135 )
...
* add stream::any method
* use `ret` macro and small improvements
* fix docs return type in `ret` macro
2019-09-01 19:58:16 +02:00
Shady Khalifa
e517c60fb1
remove comments
2019-08-30 20:32:03 +02:00
Shady Khalifa
e8860454e7
remove extra newline
...
Co-Authored-By: Yoshua Wuyts <yoshuawuyts+github@gmail.com>
2019-08-30 20:30:48 +02:00
Shady Khalifa
243a48c14e
remove debug
2019-08-30 18:37:58 +02:00
Shady Khalifa
fe45ba5628
update docs and examples
2019-08-30 18:35:51 +02:00
Shady Khalifa
3b80165532
add stream::all method
2019-08-30 17:42:35 +02:00
Yoshua Wuyts
63ad786768
remove async_await feature gate
...
Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
2019-08-21 00:29:35 -07:00
Andrew Chin
50e69dc765
Fix documention links to docs.rs
2019-08-16 21:50:02 -04:00
Stjepan Glavina
019c8085f4
Cleanup examples
2019-08-14 03:47:39 +02:00
Stjepan Glavina
9d8ac36813
Rename feature docs.rs to docs
2019-08-12 19:50:30 +02:00
Stjepan Glavina
a430e27819
Cleanup, docs, fmt
2019-08-12 18:00:21 +02:00
Stjepan Glavina
e44451a042
Revamp IO traits and Stream trait
2019-08-12 12:50:35 +02:00
Stjepan Glavina
3f4a56abdc
Reformat doc examples
2019-08-09 02:56:59 +02:00
Florian Gilcher
5b0a6269a9
Initial commit
2019-08-08 14:44:48 +02:00