2using System.Collections.Immutable;
14 internal readonly
struct ModuleProvides : IComparable<ModuleProvides>
17 readonly
string _service;
18 readonly ImmutableArray<string> _providers;
25 public ModuleProvides(
string service, ImmutableArray<string> providers)
27 _service = service ??
throw new ArgumentNullException(nameof(service));
28 _providers = providers;
34 public string Service => _service;
39 public ImmutableArray<string> Providers => _providers;
42 public int CompareTo(ModuleProvides other)
45 int c = _service.CompareTo(other._service);
54 public override bool Equals(
object? obj)
56 return obj is ModuleProvides other && Equals(other);
60 public bool Equals(ModuleProvides other)
62 return _service == other._service && _providers.SequenceEqual(other._providers);
66 public override int GetHashCode()
68 var hc =
new HashCode();
71 foreach (var t
in _providers)
74 return hc.ToHashCode();
Implements an IComparer<T> which lexicographically compares a two lists.
override int Compare(TList? x, TList? y)
static new readonly LexicographicListComparer< T > Default
Returns a default LexicographicListComparer<T> instance.