Skip to content

Commit

Permalink
Sealed more internal classes (#799)
Browse files Browse the repository at this point in the history
  • Loading branch information
dwcullop committed Dec 18, 2023
1 parent ff8b94a commit 6680627
Show file tree
Hide file tree
Showing 64 changed files with 69 additions and 69 deletions.
4 changes: 2 additions & 2 deletions src/DynamicData.Tests/Domain/Animal.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public enum AnimalFamily
Bird
}

public class Animal(string name, string type, AnimalFamily family, bool include = true, int? id = null) : AbstractNotifyPropertyChanged
public sealed class Animal(string name, string type, AnimalFamily family, bool include = true, int? id = null) : AbstractNotifyPropertyChanged
{
private static int s_counter;

Expand All @@ -46,7 +46,7 @@ public bool IncludeInResults
public override int GetHashCode() => HashCode.Combine(Id, Name, Family, Type);
}

public class AnimalEqualityComparer : IEqualityComparer<Animal>
public sealed class AnimalEqualityComparer : IEqualityComparer<Animal>
{
public static AnimalEqualityComparer Instance { get; } = new();

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData.Tests/Domain/AnimalOwner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

namespace DynamicData.Tests.Domain;

internal class AnimalOwner(string name, Guid? id = null, bool include = true) : AbstractNotifyPropertyChanged, IDisposable
internal sealed class AnimalOwner(string name, Guid? id = null, bool include = true) : AbstractNotifyPropertyChanged, IDisposable
{
private bool _includeInResults = include;

Expand Down
4 changes: 2 additions & 2 deletions src/DynamicData.Tests/Domain/Market.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ internal interface IMarket
public IObservable<IChangeSet<MarketPrice, int>> LatestPrices { get; }
}

internal class Market : IMarket, IDisposable
internal sealed class Market : IMarket, IDisposable
{
private readonly ISourceCache<MarketPrice, int> _latestPrices = new SourceCache<MarketPrice, int>(p => p.ItemId);

Expand Down Expand Up @@ -108,7 +108,7 @@ private class RatingComparer : IComparer<IMarket>
}


internal class FixedMarket : IMarket
internal sealed class FixedMarket : IMarket
{
public FixedMarket(Func<decimal> getPrice, int minId, int maxId, bool completable = true)
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData.Tests/Domain/MarketPrice.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

namespace DynamicData.Tests.Domain;

internal class MarketPrice
internal sealed class MarketPrice
{
public static IEqualityComparer<MarketPrice> EqualityComparer { get; } = new CurrentPriceEqualityComparer();
public static IEqualityComparer<MarketPrice> EqualityComparerWithTimeStamp { get; } = new TimeStampPriceEqualityComparer();
Expand Down
6 changes: 3 additions & 3 deletions src/DynamicData.Tests/Utilities/ComparerExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@

namespace DynamicData.Tests.Utilities;

internal class NoOpComparer<T> : IComparer<T>
internal sealed class NoOpComparer<T> : IComparer<T>
{
public int Compare(T x, T y) => throw new NotImplementedException();
}

internal class NoOpEqualityComparer<T> : IEqualityComparer<T>
internal sealed class NoOpEqualityComparer<T> : IEqualityComparer<T>
{
public bool Equals(T x, T y) => throw new NotImplementedException();
public int GetHashCode([DisallowNull] T obj) => throw new NotImplementedException();
}


internal class InvertedComparer<T>(IComparer<T> original) : IComparer<T>
internal sealed class InvertedComparer<T>(IComparer<T> original) : IComparer<T>
{
private readonly IComparer<T> _original = original;

Expand Down
4 changes: 2 additions & 2 deletions src/DynamicData/Aggregation/AggregateEnumerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace DynamicData.Aggregation;

internal class AggregateEnumerator<T>(IChangeSet<T> source) : IAggregateChangeSet<T>
internal sealed class AggregateEnumerator<T>(IChangeSet<T> source) : IAggregateChangeSet<T>
where T : notnull
{
public IEnumerator<AggregateItem<T>> GetEnumerator()
Expand Down Expand Up @@ -54,7 +54,7 @@ public IEnumerator<AggregateItem<T>> GetEnumerator()
}

[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:File may only contain a single type", Justification = "Same name, different generics.")]
internal class AggregateEnumerator<TObject, TKey>(IChangeSet<TObject, TKey> source) : IAggregateChangeSet<TObject>
internal sealed class AggregateEnumerator<TObject, TKey>(IChangeSet<TObject, TKey> source) : IAggregateChangeSet<TObject>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Binding/ObservablePropertyFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace DynamicData.Binding;

internal class ObservablePropertyFactory<TObject, TProperty>
internal sealed class ObservablePropertyFactory<TObject, TProperty>
where TObject : INotifyPropertyChanged
{
private readonly Func<TObject, bool, IObservable<PropertyValue<TObject, TProperty>>> _factory;
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/DistinctChangeSet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// ReSharper disable once CheckNamespace
namespace DynamicData;

internal class DistinctChangeSet<T> : ChangeSet<T, T>, IDistinctChangeSet<T>
internal sealed class DistinctChangeSet<T> : ChangeSet<T, T>, IDistinctChangeSet<T>
where T : notnull
{
public DistinctChangeSet(IEnumerable<Change<T, T>> items)
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/AutoRefresh.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace DynamicData.Cache.Internal;

internal class AutoRefresh<TObject, TKey, TAny>(IObservable<IChangeSet<TObject, TKey>> source, Func<TObject, TKey, IObservable<TAny>> reEvaluator, TimeSpan? buffer = null, IScheduler? scheduler = null)
internal sealed class AutoRefresh<TObject, TKey, TAny>(IObservable<IChangeSet<TObject, TKey>> source, Func<TObject, TKey, IObservable<TAny>> reEvaluator, TimeSpan? buffer = null, IScheduler? scheduler = null)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/Cache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
namespace DynamicData.Cache.Internal;

[DebuggerDisplay("Cache<{typeof(TObject).Name}, {typeof(TKey).Name}> ({Count} Items)")]
internal class Cache<TObject, TKey> : ICache<TObject, TKey>
internal sealed class Cache<TObject, TKey> : ICache<TObject, TKey>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/CacheUpdater.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class CacheUpdater<TObject, TKey> : ISourceUpdater<TObject, TKey>
internal sealed class CacheUpdater<TObject, TKey> : ISourceUpdater<TObject, TKey>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/Cast.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace DynamicData.Cache.Internal;

internal class Cast<TSource, TKey, TDestination>(IObservable<IChangeSet<TSource, TKey>> source, Func<TSource, TDestination> converter)
internal sealed class Cast<TSource, TKey, TDestination>(IObservable<IChangeSet<TSource, TKey>> source, Func<TSource, TDestination> converter)
where TSource : notnull
where TKey : notnull
where TDestination : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/ChangeSetCache.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace DynamicData.Cache.Internal;
/// </summary>
/// <typeparam name="TObject">ChangeSet Object Type.</typeparam>
/// <typeparam name="TKey">ChangeSet Key Type.</typeparam>
internal class ChangeSetCache<TObject, TKey>
internal sealed class ChangeSetCache<TObject, TKey>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/ChangeSetMergeTracker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace DynamicData.Cache.Internal;

internal class ChangeSetMergeTracker<TObject, TKey>(Func<IEnumerable<ChangeSetCache<TObject, TKey>>> selectCaches, IComparer<TObject>? comparer, IEqualityComparer<TObject>? equalityComparer)
internal sealed class ChangeSetMergeTracker<TObject, TKey>(Func<IEnumerable<ChangeSetCache<TObject, TKey>>> selectCaches, IComparer<TObject>? comparer, IEqualityComparer<TObject>? equalityComparer)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/DeferUntilLoaded.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace DynamicData.Cache.Internal;

internal class DeferUntilLoaded<TObject, TKey>
internal sealed class DeferUntilLoaded<TObject, TKey>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/DynamicFilter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace DynamicData.Cache.Internal;

internal class DynamicFilter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>> source, IObservable<Func<TObject, bool>> predicateChanged, IObservable<Unit>? refilterObservable = null, bool suppressEmptyChangeSets = true)
internal sealed class DynamicFilter<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>> source, IObservable<Func<TObject, bool>> predicateChanged, IObservable<Unit>? refilterObservable = null, bool suppressEmptyChangeSets = true)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/EditDiff.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class EditDiff<TObject, TKey>(ISourceCache<TObject, TKey> source, Func<TObject, TObject, bool> areEqual)
internal sealed class EditDiff<TObject, TKey>(ISourceCache<TObject, TKey> source, Func<TObject, TObject, bool> areEqual)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/FilterOnObservable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace DynamicData.Cache.Internal;

internal class FilterOnObservable<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>> source, Func<TObject, TKey, IObservable<bool>> filterFactory, TimeSpan? buffer = null, IScheduler? scheduler = null)
internal sealed class FilterOnObservable<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>> source, Func<TObject, TKey, IObservable<bool>> filterFactory, TimeSpan? buffer = null, IScheduler? scheduler = null)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/FilterOnProperty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
namespace DynamicData.Cache.Internal;

[Obsolete("Use AutoRefresh(), followed by Filter() instead")]
internal class FilterOnProperty<TObject, TKey, TProperty>(IObservable<IChangeSet<TObject, TKey>> source, Expression<Func<TObject, TProperty>> propertySelector, Func<TObject, bool> predicate, TimeSpan? throttle = null, IScheduler? scheduler = null)
internal sealed class FilterOnProperty<TObject, TKey, TProperty>(IObservable<IChangeSet<TObject, TKey>> source, Expression<Func<TObject, TProperty>> propertySelector, Func<TObject, bool> predicate, TimeSpan? throttle = null, IScheduler? scheduler = null)
where TObject : INotifyPropertyChanged
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/FinallySafe.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace DynamicData.Cache.Internal;

internal class FinallySafe<T>(IObservable<T> source, Action finallyAction)
internal sealed class FinallySafe<T>(IObservable<T> source, Action finallyAction)
{
private readonly Action _finallyAction = finallyAction ?? throw new ArgumentNullException(nameof(finallyAction));

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/FullJoin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace DynamicData.Cache.Internal;

internal class FullJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, Optional<TLeft>, Optional<TRight>, TDestination> resultSelector)
internal sealed class FullJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, Optional<TLeft>, Optional<TRight>, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/FullJoinMany.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class FullJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
internal sealed class FullJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/GroupOnProperty.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

namespace DynamicData.Cache.Internal;

internal class GroupOnProperty<TObject, TKey, TGroup>(IObservable<IChangeSet<TObject, TKey>> source, Expression<Func<TObject, TGroup>> groupSelectorKey, TimeSpan? throttle = null, IScheduler? scheduler = null)
internal sealed class GroupOnProperty<TObject, TKey, TGroup>(IObservable<IChangeSet<TObject, TKey>> source, Expression<Func<TObject, TGroup>> groupSelectorKey, TimeSpan? throttle = null, IScheduler? scheduler = null)
where TObject : INotifyPropertyChanged
where TKey : notnull
where TGroup : notnull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

namespace DynamicData.Cache.Internal;

internal class GroupOnPropertyWithImmutableState<TObject, TKey, TGroup>(IObservable<IChangeSet<TObject, TKey>> source, Expression<Func<TObject, TGroup>> groupSelectorKey, TimeSpan? throttle = null, IScheduler? scheduler = null)
internal sealed class GroupOnPropertyWithImmutableState<TObject, TKey, TGroup>(IObservable<IChangeSet<TObject, TKey>> source, Expression<Func<TObject, TGroup>> groupSelectorKey, TimeSpan? throttle = null, IScheduler? scheduler = null)
where TObject : INotifyPropertyChanged
where TKey : notnull
where TGroup : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/IndexAndNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ internal static class IndexAndNode
}

[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1402:File may only contain a single type", Justification = "Same class name, different generics.")]
internal class IndexAndNode<TNodeValue>(int index, LinkedListNode<TNodeValue> node)
internal sealed class IndexAndNode<TNodeValue>(int index, LinkedListNode<TNodeValue> node)
{
public int Index { get; } = index;

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/InnerJoin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace DynamicData.Cache.Internal;

internal class InnerJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<(TLeftKey leftKey, TRightKey rightKey), TLeft, TRight, TDestination> resultSelector)
internal sealed class InnerJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<(TLeftKey leftKey, TRightKey rightKey), TLeft, TRight, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/InnerJoinMany.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace DynamicData.Cache.Internal;

internal class InnerJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
internal sealed class InnerJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/KeyValueCollection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class KeyValueCollection<TObject, TKey> : IKeyValueCollection<TObject, TKey>
internal sealed class KeyValueCollection<TObject, TKey> : IKeyValueCollection<TObject, TKey>
{
private readonly IReadOnlyCollection<KeyValuePair<TKey, TObject>> _items;

Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/KeyValueComparer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

namespace DynamicData.Cache.Internal;

internal class KeyValueComparer<TObject, TKey>(IComparer<TObject>? comparer = null) : IComparer<KeyValuePair<TKey, TObject>>
internal sealed class KeyValueComparer<TObject, TKey>(IComparer<TObject>? comparer = null) : IComparer<KeyValuePair<TKey, TObject>>
{
public int Compare(KeyValuePair<TKey, TObject> x, KeyValuePair<TKey, TObject> y)
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/LeftJoin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace DynamicData.Cache.Internal;

internal class LeftJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, TLeft, Optional<TRight>, TDestination> resultSelector)
internal sealed class LeftJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, TLeft, Optional<TRight>, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/LeftJoinMany.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class LeftJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
internal sealed class LeftJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, TLeft, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/MergeMany.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace DynamicData.Cache.Internal;

internal class MergeMany<TObject, TKey, TDestination>
internal sealed class MergeMany<TObject, TKey, TDestination>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/MergeManyItems.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

namespace DynamicData.Cache.Internal;

internal class MergeManyItems<TObject, TKey, TDestination>
internal sealed class MergeManyItems<TObject, TKey, TDestination>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/Page.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class Page<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>> source, IObservable<IPageRequest> pageRequests)
internal sealed class Page<TObject, TKey>(IObservable<ISortedChangeSet<TObject, TKey>> source, IObservable<IPageRequest> pageRequests)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/QueryWhenChanged.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class QueryWhenChanged<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>> source, Func<TObject, IObservable<TValue>>? itemChangedTrigger = null)
internal sealed class QueryWhenChanged<TObject, TKey, TValue>(IObservable<IChangeSet<TObject, TKey>> source, Func<TObject, IObservable<TValue>>? itemChangedTrigger = null)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/RefCount.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace DynamicData.Cache.Internal;

internal class RefCount<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>> source)
internal sealed class RefCount<TObject, TKey>(IObservable<IChangeSet<TObject, TKey>> source)
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/RemoveKeyEnumerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace DynamicData.Cache.Internal;
/// An optional list, if provided it allows the refresh from a key based cache to find the index for the resulting list based refresh.
/// If not provided a refresh will dropdown to a replace which may ultimately result in a remove+add change downstream.
/// </param>
internal class RemoveKeyEnumerator<TObject, TKey>(IChangeSet<TObject, TKey> source, IExtendedList<TObject>? list = null) : IEnumerable<Change<TObject>>
internal sealed class RemoveKeyEnumerator<TObject, TKey>(IChangeSet<TObject, TKey> source, IExtendedList<TObject>? list = null) : IEnumerable<Change<TObject>>
where TObject : notnull
where TKey : notnull
{
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/RightJoin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace DynamicData.Cache.Internal;

internal class RightJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TRightKey, Optional<TLeft>, TRight, TDestination> resultSelector)
internal sealed class RightJoin<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TRightKey, Optional<TLeft>, TRight, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down
2 changes: 1 addition & 1 deletion src/DynamicData/Cache/Internal/RightJoinMany.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace DynamicData.Cache.Internal;

internal class RightJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
internal sealed class RightJoinMany<TLeft, TLeftKey, TRight, TRightKey, TDestination>(IObservable<IChangeSet<TLeft, TLeftKey>> left, IObservable<IChangeSet<TRight, TRightKey>> right, Func<TRight, TLeftKey> rightKeySelector, Func<TLeftKey, Optional<TLeft>, IGrouping<TRight, TRightKey, TLeftKey>, TDestination> resultSelector)
where TLeft : notnull
where TLeftKey : notnull
where TRight : notnull
Expand Down

0 comments on commit 6680627

Please sign in to comment.