20 lines
545 B
C#
20 lines
545 B
C#
|
using System.Reactive.Linq;
|
||
|
using System.Reactive.Threading.Tasks;
|
||
|
using CliWrap;
|
||
|
|
||
|
namespace InnovEnergy.RemoteSupportConsole;
|
||
|
|
||
|
public static class ObservablePipeSource
|
||
|
{
|
||
|
|
||
|
// TODO: move to utils?
|
||
|
|
||
|
public static PipeSource AsPipeSource(this IObservable<Byte[]> observable)
|
||
|
{
|
||
|
return PipeSource.Create((destination, cancellationToken) =>
|
||
|
observable
|
||
|
.Select(data => destination.WriteAsync(data, 0, data.Length, cancellationToken))
|
||
|
.ToTask(cancellationToken)
|
||
|
);
|
||
|
}
|
||
|
}
|