Is your feature request related to a problem? Please describe.
Libraries that move to R3 still expose or consume System.IObservable<T> and IAsyncEnumerable<T> at their public boundaries. R3 has the conversions — ToObservable(this IObservable<T>), AsSystemObservable, ToObservable(this IAsyncEnumerable<T>), Observable.CreateFrom(Func<CancellationToken, IAsyncEnumerable<T>>) and ToAsyncEnumerable — but FSharp.Control.R3 0.3.1 wraps none of them.
Describe the solution you'd like
// FSharp.Control.R3.Observable
val ofSystemObservable : source : IObservable<'T> -> Observable<'T>
val toSystemObservable : source : Observable<'T> -> IObservable<'T>
val ofAsyncEnumerable : source : IAsyncEnumerable<'T> -> Observable<'T>
// FSharp.Control.R3.Task.Observable
val ofAsyncEnumerableFactory : factory : (CancellationToken -> IAsyncEnumerable<'T>) -> Observable<'T>
val toAsyncEnumerable : cancellationToken : CancellationToken -> source : Observable<'T> -> IAsyncEnumerable<'T>
Names are a suggestion. ofAsyncEnumerable composes with taskSeq { } from FSharp.Control.TaskSeq.
Additional context
FSharp.Data.GraphQL exposes IObservable<_> in its subscription provider interfaces, which live in a netstandard2.0 assembly, and resolves @stream fields from IAsyncEnumerable<_>.
Is your feature request related to a problem? Please describe.
Libraries that move to R3 still expose or consume
System.IObservable<T>andIAsyncEnumerable<T>at their public boundaries. R3 has the conversions —ToObservable(this IObservable<T>),AsSystemObservable,ToObservable(this IAsyncEnumerable<T>),Observable.CreateFrom(Func<CancellationToken, IAsyncEnumerable<T>>)andToAsyncEnumerable— but FSharp.Control.R3 0.3.1 wraps none of them.Describe the solution you'd like
Names are a suggestion.
ofAsyncEnumerablecomposes withtaskSeq { }from FSharp.Control.TaskSeq.Additional context
FSharp.Data.GraphQL exposes
IObservable<_>in its subscription provider interfaces, which live in a netstandard2.0 assembly, and resolves@streamfields fromIAsyncEnumerable<_>.