Unverified Commit 545ceaf6 authored by Niklas Adolfsson's avatar Niklas Adolfsson Committed by GitHub
Browse files

feat: add `SubscriptionSink::pipe_from_try_stream` to support streams that returns `Result` (#720)



* refactor: make `pipe_from_stream` take stream of result

The rationale for this is that it is more flexible for use cases when `Stream<Item = Result<T, Error>>`.

Take for example `tokio_stream::Broadcast` then one would have to something like:

```rust
   let stream = BroadcastStream::new(rx).take_while(|r| future::ready(r.is_ok())).filter_map(|r| future::ready(r.ok()));
```

Of course it's a bit awkward to return `Result` when the underlying stream can't fail but I think that's fair trade-off
here.

* Update core/src/server/rpc_module.rs

Co-authored-by: default avatarTarik Gul <[email protected]>

* pipe_from_stream: make E: Display instead of StdError

* add a test

* add `pipe_from_try_stream` API to support `TryStream`

* Update tests/tests/integration_tests.rs

* Update proc-macros/src/lib.rs

Co-authored-by: default avatarTarik Gul <[email protected]>
parent 14b1b4b5
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment