Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions src/Primitives.Shared/LinqExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,10 @@ namespace ReactiveUI.Primitives;
/// <summary>Miscellaneous Primitives extensions.</summary>
public static partial class LinqExtensions
{
/// <summary>Disposal-tracking operators for a disposable.</summary>
/// <summary>Disposal operators for a disposable.</summary>
/// <param name="disposable">The disposable.</param>
extension(IDisposable disposable)
{
/// <summary>Disposes the IDisposable with the disposables instance.</summary>
/// <param name="disposables">The disposables.</param>
/// <returns>An IDisposable.</returns>
public IDisposable DisposeWith(MultipleDisposable disposables)
{
disposables?.Add(disposable);
return disposable;
}

/// <summary>Disposes the with.</summary>
/// <returns>A SingleDisposable.</returns>
public SingleDisposable DisposeWith() =>
Expand Down Expand Up @@ -76,4 +67,22 @@ public IObservable<IList<TSource>> Buffer(int count, int skip)
return new BufferCountSignal<TSource>(source, count, skip);
}
}

/// <summary>Disposal-tracking operators for a disposable.</summary>
/// <typeparam name="T">The disposable type.</typeparam>
/// <param name="disposable">The disposable.</param>
extension<T>(T disposable)
where T : IDisposable
{
/// <summary>Disposes the IDisposable with the disposables instance.</summary>
/// <param name="disposables">The disposables.</param>
/// <returns>The original disposable.</returns>
public T DisposeWith(MultipleDisposable disposables)
{
ArgumentExceptionHelper.ThrowIfNull(disposables);

disposables.Add(disposable);
return disposable;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -419,9 +419,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -419,9 +419,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -419,9 +419,12 @@ namespace ReactiveUI.Primitives.Reactive
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,12 @@ namespace ReactiveUI.Primitives
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,12 @@ namespace ReactiveUI.Primitives
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,12 @@ namespace ReactiveUI.Primitives
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,12 @@ namespace ReactiveUI.Primitives
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,12 @@ namespace ReactiveUI.Primitives
extension(System.IDisposable disposable)
{
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith() { }
public System.IDisposable DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
public ReactiveUI.Primitives.Disposables.SingleDisposable DisposeWith(System.Action? action) { }
}
extension<T>(T disposable) where T : System.IDisposable
{
public T DisposeWith(ReactiveUI.Primitives.Disposables.MultipleDisposable disposables) { }
}
extension(System.IObservable<object?> source)
{
public System.IObservable<TResult> CastTo<TResult>() { }
Expand Down
Loading
Loading