|
2 | 2 | using GitVersion.Helpers; |
3 | 3 | using LibGit2Sharp; |
4 | 4 |
|
5 | | -namespace GitVersion.Git |
6 | | -{ |
7 | | - internal sealed class Reference : IReference |
8 | | - { |
9 | | - private static readonly LambdaEqualityHelper<IReference> equalityHelper = new(x => x.Name.Canonical); |
10 | | - private static readonly LambdaKeyComparer<IReference, string> comparerHelper = new(x => x.Name.Canonical); |
11 | | - internal readonly LibGit2Sharp.Reference innerReference; |
| 5 | +namespace GitVersion.Git; |
12 | 6 |
|
13 | | - internal Reference(LibGit2Sharp.Reference reference) |
14 | | - { |
15 | | - this.innerReference = reference.NotNull(); |
16 | | - Name = new ReferenceName(reference.CanonicalName); |
| 7 | +internal readonly struct Reference : IReference |
| 8 | +{ |
| 9 | + private static readonly LambdaEqualityHelper<IReference> equalityHelper = new(x => x.Name.Canonical); |
| 10 | + private static readonly LambdaKeyComparer<IReference, string> comparerHelper = new(x => x.Name.Canonical); |
| 11 | + internal readonly LibGit2Sharp.Reference innerReference; |
17 | 12 |
|
18 | | - if (reference is DirectReference) |
19 | | - ReferenceTargetId = new ObjectId(reference.TargetIdentifier); |
20 | | - } |
| 13 | + internal Reference(LibGit2Sharp.Reference reference) |
| 14 | + { |
| 15 | + this.innerReference = reference.NotNull(); |
| 16 | + Name = new ReferenceName(reference.CanonicalName); |
21 | 17 |
|
22 | | - public ReferenceName Name { get; } |
23 | | - public IObjectId? ReferenceTargetId { get; } |
24 | | - public int CompareTo(IReference? other) => comparerHelper.Compare(this, other); |
25 | | - public override bool Equals(object? obj) => Equals(obj as IReference); |
26 | | - public bool Equals(IReference? other) => equalityHelper.Equals(this, other); |
27 | | - public override int GetHashCode() => equalityHelper.GetHashCode(this); |
28 | | - public override string ToString() => Name.ToString(); |
29 | | - public string TargetIdentifier => this.innerReference.TargetIdentifier; |
30 | | - public static implicit operator LibGit2Sharp.Reference(Reference d) |
31 | | - => d.NotNull().innerReference; |
| 18 | + if (reference is DirectReference) |
| 19 | + ReferenceTargetId = new ObjectId(reference.TargetIdentifier); |
32 | 20 | } |
| 21 | + |
| 22 | + public ReferenceName Name { get; } |
| 23 | + public IObjectId? ReferenceTargetId { get; } |
| 24 | + public int CompareTo(IReference? other) => comparerHelper.Compare(this, other); |
| 25 | + public override bool Equals(object? obj) => Equals(obj as IReference); |
| 26 | + public bool Equals(IReference? other) => equalityHelper.Equals(this, other); |
| 27 | + public override int GetHashCode() => equalityHelper.GetHashCode(this); |
| 28 | + public override string ToString() => Name.ToString(); |
| 29 | + public string TargetIdentifier => this.innerReference.TargetIdentifier; |
| 30 | + public static implicit operator LibGit2Sharp.Reference(Reference d) |
| 31 | + => d.innerReference; |
33 | 32 | } |
0 commit comments