public static IOperation <T> Retry <T>(this IOperation <T> source, IRetryStrategy retryStrategy) => new Operation <T>(retryStrategy.Apply(source.AsObservable()));
private static async Task Reconnect(this IWebSocketClient webSocketClient, IRetryStrategy retryStrategy, CancellationToken cancellationToken = default) { await retryStrategy.Apply(async cancellationToken => await webSocketClient.Connect(cancellationToken), cancellationToken); }