| File: FrameworkDependency.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.LibraryModel\NuGet.LibraryModel.csproj (NuGet.LibraryModel) |
// Copyright(c) .NET Foundation.All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using NuGet.Common; using NuGet.Shared; namespace NuGet.LibraryModel { public sealed class FrameworkDependency : IEquatable<FrameworkDependency>, IComparable<FrameworkDependency> { public string Name { get; } public FrameworkDependencyFlags PrivateAssets { get; } public FrameworkDependency( string name, FrameworkDependencyFlags privateAssets) { Name = name ?? throw new ArgumentNullException(nameof(name)); PrivateAssets = privateAssets; } public int CompareTo(FrameworkDependency? other) { if (ReferenceEquals(other, null)) { return 1; } var compare = ComparisonUtility.FrameworkReferenceNameComparer.Compare(Name, other.Name); if (compare == 0) { int thisPrivateAssets = (int)PrivateAssets; int otherPrivateAssets = (int)other.PrivateAssets; return thisPrivateAssets.CompareTo(otherPrivateAssets); } return compare; } public bool Equals(FrameworkDependency? other) { if (other == null) { return false; } if (ReferenceEquals(this, other)) { return true; } return ComparisonUtility.FrameworkReferenceNameComparer.Equals(Name, other.Name) && PrivateAssets == other.PrivateAssets; } public override int GetHashCode() { var hashCode = new HashCodeCombiner(); hashCode.AddObject(ComparisonUtility.FrameworkReferenceNameComparer.GetHashCode(Name)); hashCode.AddStruct(PrivateAssets); return hashCode.CombinedHash; } } }