| File: Model\Merge.cs | Web Access |
| Project: src\src\Microsoft.ML.Tokenizers\Microsoft.ML.Tokenizers.csproj (Microsoft.ML.Tokenizers) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Collections.Generic; using System.Text; namespace Microsoft.ML.Tokenizers { // Used inside the Word class for merging the tokenized parts. internal struct Merge : IEquatable<Merge>, IComparable<Merge> { public Merge(int pos, int rank, int newId) { Pos = pos; Rank = rank; NewId = newId; } public int Pos { get; set; } public int Rank { get; set; } public int NewId { get; set; } public int CompareTo(Merge other) { if (Rank != other.Rank) { return Rank.CompareTo(other.Rank); } return Pos.CompareTo(other.Pos); } public override int GetHashCode() { int hashcode = 23; hashcode = (hashcode * 37) + Rank.GetHashCode(); hashcode = (hashcode * 37) + Pos.GetHashCode(); return hashcode; } public bool Equals(Merge other) => Pos == other.Pos && Rank == other.Rank; } }